It's an esoteric programming language. It's quite interesting how it works. The first line is a title (omitted in that example; I don't know why) and then you follow with a list of characters (such as Romeo, Juliet, Hamlet, Othello, etc.) which you name and describe (the description is ignored by the parser) at the top of the file. These are your variables. They have to be named after a character from a Shakespearean play.
Next, you have acts and scenes which are like functions (you can jump between acts and scenes by saying something like "Let us return to Act II Scene I"). Each Act and Scene has a number in Roman numerals and a title (I believe the parser ignores the title as it does with character descriptions). Control just flows down the program unless you explicitly return to an earlier Act/Scene.
You state which characters are in the scene at various times using the [Enter] and [Exit] directives and that lets you use those variables in that scope. Then you can have one character store data in another character. I can't remember exactly how the arithmetic works, but you start with "You are " and then describe them qualitatively, using positive, neutral and negative adjectives. I can't remember, but I think "You are as <adjective> as <character>" just takes the value from one character and stores it in another. "Speak your mind!" tells a character to output its data as ASCII. You can also do input and use characters as stacks, but I don't remember how that works.
My second favourite esoteric language is Rail:
$ 'main' (--):
You basically draw a train track in ASCII and that tells the interpreter what to do.