Shakespeare Programming Language

Pour les articles homonymes, voir Shakespeare (homonymie).

Shakespeare Programming Language

Site web | shakespearelang.sourceforge.net
modifier

Le Shakespeare Programming Language ou SPL est un langage de programmation créé par Karl Hasselström et Jon Åslund en février 2001. Le code source des programmes écrits en SPL ressemble à une pièce de théâtre. Il est inspiré de langages comme le Malbolge ou le Brainfuck et doit son nom au dramaturge anglais William Shakespeare[1].

## Écrire un programme en SPL

[modifier | modifier le code]

Le développeur écrit son code source sous la forme d'une pièce de théâtre répondant aux conventions suivantes[2] :

* Les premières lignes du programme forment le titre (jusqu'à ce qu'un point soit rencontré) et sont ignorées. Elles n'ont qu'un but esthétique et sont stricto sensu des commentaires ;
* Les lignes suivantes sont une liste des personnages de la pièce, chacun correspondant à une variable. Il n'existe qu'un seul type de variable, pouvant contenir un nombre entier signé (positif ou négatif). Toutes les variables doivent être déclarées. Seuls les noms de personnages de Shakespeare peuvent être utilisés (e.g. Romeo, Juliet, Hamlet…) ;
* Le programme est un ensemble d'actes et de scènes, servant à la fois de découpage esthétique de la pièce et d'étiquette pour le parser. Chaque acte ou scène est annoncé par une ligne débutant par le mot Act ou Scene suivi d'un nombre romain, et éventuellement d'un titre qui sera considéré comme un commentaire (e.g. Scene I ou Act III : The tree revolution) ;
* Chaque scène peut débuter par une entrée de personnages. Pour qu'une variable soit utilisée dans cette scène, il y a lieu de la faire monter sur les planches avant de pouvoir l'utiliser. Cette entrée se traduit par une ligne entre crochet sous la forme [Enter Romeo and Juliet] ;
* Chaque scène peut de même se clore par une sortie des variables sous la forme d'une ligne comme [Exit Lady MacBeth] ou, s'il y a plusieurs variables, [Exeunt Achilles and Paris]. Si un personnage sort et entre ultérieurement, la variable ne conservera pas sa valeur précédente et sera réinitialisée ;
* Entre les lignes d'entrée et de sortie des personnages, viennent les répliques contenant les instructions du programme. Chaque réplique commence par un personnage (e.g. Ajax:) et une ou plusieurs phrases ;
* Sauf cas particulier énoncé ci-dessous, chaque phrase assignera une valeur. Chaque nom correspond à une constante 1 s'il est joli, -1 dans le cas contraire. Ainsi, flower, joy ou angel vaudront 1, tandis que devil, bastard ou death vaudront -1[3]. D'autres noms, plus neutres, comme tree vaudront également 1. Tout adjectif précédant un nom le multipliera par deux. Ainsi pour construire des nombres, il y a lieu généralement d'écrire une somme ou une différence de puissances de deux. Ainsi, à la somme suivante : « a charming cute golden flower and the silly beggar » sera assignée la valeur de 6 ( 2 3 × 1 + 2 × − 1 {\displaystyle 2^{3}\times 1+2\times -1} ).

Note pour les non-anglophones : en effet, charming, cute et golden sont des adjectifs, flower est joli, silly est un adjectif, et beggar n'est pas joli. D'où la formule ci-dessus.

## Voir aussi

[modifier | modifier le code]

### Articles connexes

[modifier | modifier le code]

* Langage de programmation exotique
* Brainfuck

### Liens externes

[modifier | modifier le code]

* (en) Site officiel
* (en) 99 bottles of beer en Shakespeare Programming Language

### Notes et références

[modifier | modifier le code]

1. ↑ (en) Karl Hasselström, Jon Åslund, « Shakespeare Programming Language Design Goals »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur shakespearelang.sourceforge.net, 21 août 2001 (consulté le 2 février 2008).
2. ↑ (en) Karl Hasselström, Jon Åslund, « Hello World and other small softwares in SPL walkthrough »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur shakespearelang.sourceforge.net, 21 août 2001 (consulté le 2 février 2008).
3. ↑ (en) Fichier source Shakespeare.pm disponible pour l'implémentation Perl Lingua::Shakespeare.

v · m

Langages de programmation exotiques

* Beatnik (en)
* Befunge
* Brainfuck
* FRACTRAN
* HQ9+
* INTERCAL
* Iota
* JSFuck (en)
* Leet (en)
* LOLCODE
* Malbolge
* Ordinateur à jeu d'instruction unique
* Piet
* Shakespeare Programming Language
* SNUSP
* Thue
* Unlambda
* Whitespace

* Langage de programmation
* Turing tarpit

v · m

William Shakespeare

* Chronologie des pièces
* Écriture
* Influence (en)
* Orthographe de son nom
* Paternité des œuvres
* Personnages
* Portraits
* Sexualité
* Style (en)
* Traductions françaises
* Adaptations

Tragédies |

* Antoine et Cléopâtre
* Coriolan
* Hamlet
* Jules César
* Macbeth
* Othello
* Le Roi Lear
* Roméo et Juliette
* Timon d'Athènes
* Titus Andronicus
* Troïlus et Cressida

Comédies |

* Beaucoup de bruit pour rien
* La Comédie des erreurs
* Le Conte d'hiver
* Comme il vous plaira
* Cymbeline
* Les Deux Gentilshommes de Vérone
* Les Deux Nobles Cousins
* Les Joyeuses Commères de Windsor
* Le Marchand de Venise
* La Mégère apprivoisée
* Mesure pour mesure
* La Nuit des rois
* Peines d'amour perdues
* Périclès, prince de Tyr
* Le Songe d'une nuit d'été
* La Tempête
* Tout est bien qui finit bien

Pièces historiques |

* Le Roi Jean
* Édouard III
* Richard II
* Henri IV
* première
* deuxième partie
* Henri V
* Henri VI
* première
* deuxième
* troisième partie
* Richard III
* Henri VIII

Poèmes |

* Sonnets
* Vénus et Adonis
* Le Viol de Lucrèce
* Complainte d'une amante
* The Phoenix and the Turtle (en)
* Le Pèlerin passionné

Apocryphes |

* Arden de Faversham
* Edmund Ironside
* Locrine (en)
* Peines d'amour gagnées
* Vortigern and Rowena

Éditions |

* Premier Folio
* Second Folio (en)
* The Plays of William Shakespeare

Portraits |

* Portrait Chandos
* Portrait Cobbe
* Portrait Droeshout
* Portrait Flower (en)
* Monument funéraire (en)

Personnes |

* John Shakespeare (père)
* Mary Arden (mère)
* Anne Hathaway (femme)
* Susanna Hall (fille)
* Hamnet Shakespeare (fils)
* Judith Quiney (fille)
* Lord Chamberlain's Men

Lieux |

* Stratford-upon-Avon
* Maison natale
* Maison de Mary Arden
* Maison de Nash
* Maison de New Place
* Cottage d'Anne Hathaway
* Théâtre du Globe

Institutions |

* Bibliothèque Folger Shakespeare
* Royal Shakespeare Company
* Royal Shakespeare Theatre
* Shakespeare Birthplace Trust
* Boydell Shakespeare Gallery

* Portail de la programmation informatique

*[(en)]: Langue : anglais
*[v]: Voir ce modèle.
*[m]: Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.