Shakespeare (プログラミング言語)
From Wikipedia, the free encyclopedia
Shakespeare Programming Language (SPL) は、ヨン・オースルンド (Jon Åslund) とカール・ハッセルストローム (Karl Hasselström) によって創られたプログラミング言語である。Chef言語と同じように、Shakespeare言語はあたかもプログラムではないもの(この場合はシェイクスピアの演劇)に見えるよう設計されている。
プログラムの冒頭にある登場人物のリストによって、スタック(もちろん「ロミオ」「ジュリエット」のような名前になっている)を宣言する。これらの登場人物の会話を通じて、それぞれの先頭にある値をプッシュ・ポップしたり入出力を実行したりする。登場人物が質問を投げかけることで、条件文としての振る舞いをさせることもできる。全体的にプログラミングのモデルはかなりアセンブリ言語に近いが、それよりも相当に冗長である。
「台本」のようなコードを記述するコンピューター言語には他に、プログラミング言語の「Mana」や データ記述言語の「TVML」がある。
演目
Shakespeare言語プログラムの最初の行は「演目」(title) と呼ばれ、コンパイラは最初の行から最初のピリオドまでをコメントとみなす。
配役表
変数を宣言するセクションである。変数は符号付き整数を保持する。宣言は以下の形式で記述する。
Name, Description
ここでNameは変数の名前であり、Descriptionはコンパイラによって無視される。
変数名は全てシェイクスピアの演劇中に登場する人物の名前でなければならない。
幕と場
Shakespeare言語のコードは「幕」(Act) とその中に含まれる「場」(Scene) に分けられる。各々の「幕」と「場」はローマ数字で番号が振られ、GOTO文のラベルとして機能する。コロンの後のコードはコメントとみなされる。形式は以下の通り。
Act I: Hamlet's insults and flattery. Scene I: The insulting of Romeo.
登場と退場
「登場人物」(変数) は演じる前に「舞台」に上がらなければならない。変数を舞台に上がらせるには、Enter (登場) コマンドを使用する。登場人物を退場させるには、Exit (退場) コマンドを使用する。Exeunt (一同退場) コマンドは2名以上の登場人物を退場させるが、登場人物が指定されていない場合は全ての人物が退場する。形式は以下の通り。
[Enter Juliet] [Enter Romeo and Juliet] [Exit Romeo] [Exeunt Romeo and Juliet] [Exeunt]
各行は登場人物の名前、コロン、そして台詞から構成される。