esolang Esoterische Programmiersprachen Thomas Zimmermann [email_address] http://www.2000i.de/
Esoterik Eine Definition Exklusiver Kreis Eingeweihter Heiliges Wissen und Kultpraktiken Begriffsgrundlage für wissenschaf...
Esoterische  Programm Formen <ul><li>The Null Program </li></ul><ul><ul><li>Ein leeres Programm. </li></ul></ul><ul><li>Qu...
Einschub Quines <ul><li>:quine: /kwi:n/ (n.)  A program that generates a copy of its own source text as its complete outpu...
Quines Eine Analogie Quines Compiler Ausführung foo.xx foo foo.xx Interpreter/ Ausführung foo.xx foo.xx Analogie Ausführun...
<ul><li>$ touch foo.pl </li></ul><ul><li>$ ll foo.pl </li></ul><ul><li>-rw-------  1 zimmerth general  0 Nov 10 16:01 foo....
Noch ein Einschub Foo <ul><li>:foo: /foo/ </li></ul><ul><ul><li>Used very generally as a sample name for absolutely anythi...
Esoterische Programmiermethoden <ul><li>Self Modification </li></ul><ul><li>Polycoding Polycoding is the act of non-trivia...
Esoterische Programmiersprachen Brainfuck Shakespeare Piet Chef ?
brainfuck Brain: an apparatus with which we think we think. -- Ambrose Bierce
Brainfuck Urban Müller Brainfuck >+++++++++[<++++++++>-]<.>+++++++ [<++++>-]<+.+++++++..+++.[-]>++++++++ [<++++>-]<.#>++++...
Brainfuck Language Concepts <ul><li>Array  a  mit 30000 Bytes  </li></ul><ul><li>Zeiger  p  auf das Array </li></ul><ul><l...
Brainfuck  Anweisungen <ul><li>>  Increment the pointer:  p++;   </li></ul><ul><li><  Decrement the pointer:  p--; </li></...
Brainfuck Hello World <ul><li>>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+. +++++++..+++.[-]>++++++++[<++++>-]<. >++++++++...
Brainfuck Ein Quine <ul><li>>>+++++++>>++>>++++>>+++++++>>+>>++++>>+>>+++>>+>>+++++>>+>>++>>+>>++++++>>++>>++++>>+++++++>>...
<ul><li>Der PBI-Quellcode hat 228 Bytes (3 Zeilen à 76 Zeichen): </li></ul><ul><li>char m[9999],*n[99],*r=m,*p=m+5000,**s=...
Compressed Brainfuck www.catseye.mb.ca/esoteric/bf/compressed.html <ul><li>Beobachtung: Brainfuck hat nur 8 Anweisungen,  ...
Brainfuck Audio www.2000i.de/brainfuck-audio/ (2bf) Parallelität -3 -4 +2 +2 +1 -1 -2 +2 1 Viertel =  2 Brainfuck-Anweisun...
chef I don‘t even butter my bread.  I consider that cooking. -- Katherine Cebrian
Chef Anwendungsgebiet
Chef Language Concepts <ul><li>Ingredients </li></ul><ul><ul><li>All recipes have ingredients! The ingredients hold indivi...
Chef Syntax Elements <ul><li>Recipe Title </li></ul><ul><li>Comments  optional   </li></ul><ul><li>Ingredient List Verschi...
Chef Hello World Souffle (1) <ul><li>Hello World Souffle. This recipe prints the immortal words &quot;Hello world!&quot;, ...
Chef Hello World Souffle (2) <ul><li>Method. Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl.  P...
piet The Art of Computer Programming. -- Donald E. Knuth
Einschub Piet Mondrian
Google und Piet Mondrian
Einschub Googol und Googolplex <ul><li>Googol A googol is  10 to the 100th power . The term was invented by Milton Sirotta...
Piet Language Concepts <ul><li>20 Colours </li></ul><ul><ul><li>Hue Cycle </li></ul></ul><ul><ul><li>Lightness Cycle </li>...
Piet Colours white black Cycles Other Colors light red yellow green cyan blue magenta dark
Piet Colour Cycles red yellow green cyan blue magenta Hue Cycle Lightness Cycle light normal dark
Piet Kontrollfluss 1 2 0 0: CC 3 CC CC 1: CC 2: CC 3: CC CC CC CC
Piet Syntax Elements <ul><li>Numbers </li></ul><ul><li>Black Blocks and Edges </li></ul><ul><li>White Blocks </li></ul><ul...
Piet  Hello World Originalgröße (30x29) Commands Cycles Vergrößerung (1400%) 72 101 108 111 119 32 114 33 (90)
Piet  Fibonacci-Zahlen Vergrößerung (4400%) Commands Cycles Originalgröße (10x11)
shakespeare Trying to pop when the stack is empty is a sure sign that the author has not yet perfected her storytelling sk...
Shakespeare Hello World <ul><li>The Infamous Hello World Program. </li></ul><ul><li>Romeo, a young man with a remarkable p...
Shakespeare Hello World (2) <ul><li>[Enter Hamlet and Romeo]   </li></ul><ul><li>Hamlet: </li></ul><ul><li>You lying stupi...
Shakespeare Zuweisungen <ul><li>You lying stupid fatherless big smelly half-witted coward! </li></ul><ul><li>You are as st...
<ul><li>[Enter Hamlet and Romeo]   </li></ul><ul><li>Hamlet: </li></ul><ul><li>You lying stupid fatherless big smelly half...
Shakespeare Reverse <ul><li>Outputting Input Reversedly. </li></ul><ul><li>Othello, a stacky man. </li></ul><ul><li>Lady M...
Shakespeare Reverse (2) <ul><li>Scene II: Pushing to the very end. </li></ul><ul><li>Lady Macbeth: </li></ul><ul><li>Open ...
Shakespeare Reverse (3) <ul><li>Scene III: Once you pop, you can't stop! </li></ul><ul><li>Lady Macbeth: </li></ul><ul><li...
conclusion A conclusion is the place where you got tired of thinking -- Martin H. Fischer
That‘s All? No, Don´t Miss... Befunge 4-dimensional control flow Intercal   Be part of the madness Unlambda Extreme functi...
the end www.2000i.de/esolang2002/ user: pinky password: brain Vielen Dank für die Aufmerksamkeit!
Upcoming SlideShare
Loading in …5
×

esolang: Esoterische Programmiersprachen

2,440 views

Published on

Presented in 2002.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,440
On SlideShare
0
From Embeds
0
Number of Embeds
37
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

esolang: Esoterische Programmiersprachen

  1. 1. esolang Esoterische Programmiersprachen Thomas Zimmermann [email_address] http://www.2000i.de/
  2. 2. Esoterik Eine Definition Exklusiver Kreis Eingeweihter Heiliges Wissen und Kultpraktiken Begriffsgrundlage für wissenschaftliche Studien Spirituelle Aufbrüche in der Gegenwart Urwissen der Menschheit Okkulte Praktiken Spiritualität und Mystik Esoterik als Religiösität
  3. 3. Esoterische Programm Formen <ul><li>The Null Program </li></ul><ul><ul><li>Ein leeres Programm. </li></ul></ul><ul><li>Quines </li></ul><ul><ul><li>Das Programm gibt den eigenen Quelltext aus </li></ul></ul><ul><li>Polyglots </li></ul><ul><ul><li>Ein Programm in mehreren Programmiersprachen </li></ul></ul><ul><li>Palindrome Programs </li></ul><ul><ul><li>Der Quelltext des Programms ist ein Palindrom </li></ul></ul>
  4. 4. Einschub Quines <ul><li>:quine: /kwi:n/ (n.) A program that generates a copy of its own source text as its complete output. Devising the shortest possible quine in some given programming language is a common hackish amusement. </li></ul><ul><li>Benannt nach Willard van Orman Quine </li></ul><ul><li>Existenz beweisbar mit Fixpunkt-Theorem http://www.eleves.ens.fr:8080/home/madore/computers/quine.html </li></ul><ul><li>Universal Quinificator für C-Programme </li></ul>
  5. 5. Quines Eine Analogie Quines Compiler Ausführung foo.xx foo foo.xx Interpreter/ Ausführung foo.xx foo.xx Analogie Ausführung Compiler Ausführung foo.xx Box mit Knopf Quines als Kopierer bzw. Replikator
  6. 6. <ul><li>$ touch foo.pl </li></ul><ul><li>$ ll foo.pl </li></ul><ul><li>-rw------- 1 zimmerth general 0 Nov 10 16:01 foo.pl </li></ul><ul><li>$ perl foo.pl > foo.out </li></ul><ul><li>$ diff foo.pl foo.out </li></ul><ul><li>$ ll foo.out </li></ul><ul><li>-rw------- 1 zimmerth general 0 Nov 10 16:01 foo.out </li></ul><ul><li>$ python foo.pl > foo.out.python </li></ul><ul><li>$ diff foo.pl foo.out.python </li></ul><ul><li>$ </li></ul>Quines Ein Beispiel $ touch foo.pl $ ll foo.pl -rw------- 1 zimmerth general 0 Nov 10 16:01 foo.pl $ perl foo.pl > foo.out $ diff foo.pl foo.out $ ll foo.out -rw------- 1 zimmerth general 0 Nov 10 16:01 foo.out
  7. 7. Noch ein Einschub Foo <ul><li>:foo: /foo/ </li></ul><ul><ul><li>Used very generally as a sample name for absolutely anything, esp. programs and files </li></ul></ul><ul><ul><li>First on the standard list of metasyntactic variables used in syntax examples (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). </li></ul></ul>The word `foo' had an immediate prewar history in comic strips and cartoons. The earliest documented uses were in the surrealist &quot;Smokey Stover“ comic strip by Bill Holman about a fireman.
  8. 8. Esoterische Programmiermethoden <ul><li>Self Modification </li></ul><ul><li>Polycoding Polycoding is the act of non-trivially compiling or executing a single instance of code in multiple contexts. </li></ul><ul><li>Masochistic Programming </li></ul><ul><li>Size Matters, and Less is More </li></ul><ul><li>Just Plain Weird z.B. var'aq - klingonische Programmiersprache </li></ul>
  9. 9. Esoterische Programmiersprachen Brainfuck Shakespeare Piet Chef ?
  10. 10. brainfuck Brain: an apparatus with which we think we think. -- Ambrose Bierce
  11. 11. Brainfuck Urban Müller Brainfuck >+++++++++[<++++++++>-]<.>+++++++ [<++++>-]<+.+++++++..+++.[-]>++++++++ [<++++>-]<.#>+++++++++++[<+++++>-] <.>++++++++[<+++>-]<.+++.------.--------.[-]> ++++++++[<++++>-]<+.[-]++++++++++.
  12. 12. Brainfuck Language Concepts <ul><li>Array a mit 30000 Bytes </li></ul><ul><li>Zeiger p auf das Array </li></ul><ul><li>Änderung von Bytes </li></ul><ul><li>Ein-/Ausgabe von Bytes </li></ul><ul><li>Einfache Schleifen </li></ul>p a: ...
  13. 13. Brainfuck Anweisungen <ul><li>> Increment the pointer: p++; </li></ul><ul><li>< Decrement the pointer: p--; </li></ul><ul><li>+ Increment the byte at the pointer: a[p]++; </li></ul><ul><li>- Decrement the byte at the pointer: a[p]--; </li></ul><ul><li>. Output the byte at the pointer: putchar(a[p]); </li></ul><ul><li>, Input a byte and store it in the byte at the pointer </li></ul><ul><li>[ Start loop: while(a[p]){ </li></ul><ul><li>] End loop: Jump back to the matching [ </li></ul><ul><li># Dump the values of a[0] thru a[9] to the console </li></ul>
  14. 14. Brainfuck Hello World <ul><li>>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+. +++++++..+++.[-]>++++++++[<++++>-]<. >+++++++++++[<+++++>-]<.>++++++++[<+++>-]<. +++.------.--------.[-]>++++++++[<++++>-]<+. [-]++++++++++. </li></ul>a[0] a[1] 0 0 72 0  p ... a: 0 0 9  72  0 H 101  0 e 108  0 ll 111  0 o 0  0 111  0 87  0 114  0 108  0 100  0 33  0 10  0 32  0 W o r l d !
  15. 15. Brainfuck Ein Quine <ul><li>>>+++++++>>++>>++++>>+++++++>>+>>++++>>+>>+++>>+>>+++++>>+>>++>>+>>++++++>>++>>++++>>+++++++>>+>>+++++>>++>>+>>+>>++++>>+++++++>>+>>+++++>>+>>+>>+>>++++>>+++++++>>+>>+++++>>++++++++++++++>>+>>+>>++++>>+++++++>>+>>+++++>>++>>+>>+>>++++>>+++++++>>+>>+++++>>+++++++++++++++++++++++++++++>>+>>+>>++++>>+++++++>>+>>+++++>>++>>+>>+>>+++++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>++>>++++>>+++++++>>+>>+++++>>+++++++>>+>>+++++>>+>>+>>+>>++++>>+>>++>>+>>++++++>>+>>+++++>>+++++++>>+>>++++>>+>>+>>++>>+++++>>+>>+++>>+>>++++>>+>>++>>+>>++++++>>+>>+++++>>+++++++++++++++++++>>++>>++>>+++>>++>>+>>++>>++++>>+++++++>>++>>+++++>>++++++++++>>+>>++>>++++>>+>>++>>+>>++++++>>++++++>>+>>+>>+++++>>+>>++++++>>++>>+++++>>+++++++>>++>>++++>>+>>++++++[<<]>>[>++++++[-<<++++++++++>>]<<++..------------------->[-<.> >+<]>[-<+>]>]<<[-[-[-[-[-[-[>++>]<+++++++++++++++++++++++++++++>]<+ +>]<++++++++++++++>]<+>]<++>]<<[->.<]<<] </li></ul><ul><li>( Author: Brian Raiter ) </li></ul>
  16. 16. <ul><li>Der PBI-Quellcode hat 228 Bytes (3 Zeilen à 76 Zeichen): </li></ul><ul><li>char m[9999],*n[99],*r=m,*p=m+5000,**s=n,d,c;main(){for(read </li></ul><ul><li>(0,r,4000);c=*r;r++)c-']'||(d>1||(r=*p?*s:(--s,r)),!d||d--), </li></ul><ul><li>c-'['||d++||(*++s=r),d||(*p+=c=='+',*p-=c=='-',p+=c=='>',p-= </li></ul><ul><li>c=='<',c-'.'||write(2,p,1),c-','||read(2,p,1));} </li></ul>Portable Brainfuck Interpreter in C <ul><li>PBI erlaubt selbst-modifizierenden Brainfuck Code: </li></ul><ul><li>+[-<+]-ÿ<<<<<<<[.>] (ein Quine natürlich) </li></ul>
  17. 17. Compressed Brainfuck www.catseye.mb.ca/esoteric/bf/compressed.html <ul><li>Beobachtung: Brainfuck hat nur 8 Anweisungen, davon 4 häufige ( +-<> ) und 4 seltene ( []., ) </li></ul>Compressed Brainfuck Format 00xxxyyy: single: only instruction xxx (xxx==yyy) 00xxxyyy: pair: instruction xxx then yyy (xxx!=yyy) 01xxxyyy: repeat: instruction yyy , xxx (2-9) times 10xxyyzz: triplet: instruction xx then yy then zz 11xxxxyy: repeat: instruction yy , xxxx (2-17) times
  18. 18. Brainfuck Audio www.2000i.de/brainfuck-audio/ (2bf) Parallelität -3 -4 +2 +2 +1 -1 -2 +2 1 Viertel = 2 Brainfuck-Anweisungen Schleifen
  19. 19. chef I don‘t even butter my bread. I consider that cooking. -- Katherine Cebrian
  20. 20. Chef Anwendungsgebiet
  21. 21. Chef Language Concepts <ul><li>Ingredients </li></ul><ul><ul><li>All recipes have ingredients! The ingredients hold individual data values. All ingredients are numerical, ... </li></ul></ul><ul><li>Mixing Bowls and Baking Dishes </li></ul><ul><ul><li>Chef has access to an unlimited supply of mixing bowls and baking dishes. These can contain ingredient values. The ingredients ... are ordered, like a stack of pancakes. </li></ul></ul>
  22. 22. Chef Syntax Elements <ul><li>Recipe Title </li></ul><ul><li>Comments optional </li></ul><ul><li>Ingredient List Verschiedene Arten von Zutaten: dry oder liquid. </li></ul><ul><li>Cooking Time optional </li></ul><ul><li>Oven Temperature optional </li></ul><ul><li>Method Put ingredient into [ nth ] mixing bowl. Add ingredient [to [ nth ] mixing bowl]. </li></ul><ul><li>Serves </li></ul>
  23. 23. Chef Hello World Souffle (1) <ul><li>Hello World Souffle. This recipe prints the immortal words &quot;Hello world!&quot;, in a basically brute force way. It also makes a lot of food for one person. Ingredients. 72 g haricot beans 101 eggs 108 g lard 111 cups oil 32 zucchinis 119 ml water 114 g red salmon 100 g dijon mustard 33 potatoes </li></ul>
  24. 24. Chef Hello World Souffle (2) <ul><li>Method. Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquify contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish. Serves 1 </li></ul>33 potatoes 100 dijon mustard 72 haricot beans 108 lard 108 lard 101 eggs 111 oil 111 oil 119 water 32 zucchinis 114 red salmon 108 lard ! d H l l e o o w r l
  25. 25. piet The Art of Computer Programming. -- Donald E. Knuth
  26. 26. Einschub Piet Mondrian
  27. 27. Google und Piet Mondrian
  28. 28. Einschub Googol und Googolplex <ul><li>Googol A googol is 10 to the 100th power . The term was invented by Milton Sirotta, the 9-year nephew of mathematician Edward Kasner. A googol is larger than the number of elementary particles in the universe, which amount to only 10 to the 80th power. </li></ul><ul><li>Googolplex A googolplex is 10 to the power of googol . Frank Pilhofer has determined that, given Moore's Law, it would make no sense to try to print out a googleplex for another 524 years - since all earlier attempts to print a googleplex out would be overtaken by the faster processor. </li></ul>
  29. 29. Piet Language Concepts <ul><li>20 Colours </li></ul><ul><ul><li>Hue Cycle </li></ul></ul><ul><ul><li>Lightness Cycle </li></ul></ul><ul><li>Codels </li></ul><ul><li>Colour Blocks </li></ul><ul><li>Stack </li></ul><ul><li>Program Execution </li></ul><ul><ul><li>Direction Pointer (DP): right, down, left, up </li></ul></ul><ul><ul><li>Codel Chooser (CC): left, right </li></ul></ul>
  30. 30. Piet Colours white black Cycles Other Colors light red yellow green cyan blue magenta dark
  31. 31. Piet Colour Cycles red yellow green cyan blue magenta Hue Cycle Lightness Cycle light normal dark
  32. 32. Piet Kontrollfluss 1 2 0 0: CC 3 CC CC 1: CC 2: CC 3: CC CC CC CC
  33. 33. Piet Syntax Elements <ul><li>Numbers </li></ul><ul><li>Black Blocks and Edges </li></ul><ul><li>White Blocks </li></ul><ul><li>Commands </li></ul>
  34. 34. Piet Hello World Originalgröße (30x29) Commands Cycles Vergrößerung (1400%) 72 101 108 111 119 32 114 33 (90)
  35. 35. Piet Fibonacci-Zahlen Vergrößerung (4400%) Commands Cycles Originalgröße (10x11)
  36. 36. shakespeare Trying to pop when the stack is empty is a sure sign that the author has not yet perfected her storytelling skills, and will severly disappoint the runtime system.
  37. 37. Shakespeare Hello World <ul><li>The Infamous Hello World Program. </li></ul><ul><li>Romeo, a young man with a remarkable patience. </li></ul><ul><li>Juliet, a likewise young woman of remarkable grace. </li></ul><ul><li>Ophelia, a remarkable woman much in dispute with Hamlet. </li></ul><ul><li>Hamlet, the flatterer of Andersen Insulting A/S. </li></ul><ul><li>Act I: Hamlet's insults and flattery. </li></ul><ul><li>Scene I: The insulting of Romeo. </li></ul>
  38. 38. Shakespeare Hello World (2) <ul><li>[Enter Hamlet and Romeo] </li></ul><ul><li>Hamlet: </li></ul><ul><li>You lying stupid fatherless big smelly half-witted coward! </li></ul><ul><li>You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind! </li></ul>
  39. 39. Shakespeare Zuweisungen <ul><li>You lying stupid fatherless big smelly half-witted coward! </li></ul><ul><li>You are as stupid as the difference between a handsome rich brave hero and thyself! </li></ul><ul><li>Speak your mind! </li></ul>Romeo = 2 6 ·(–1) = –64 Romeo = 2 3 ·(1) – Romeo = 8 – (–64) = 72 Romeo gibt dich aus!
  40. 40. <ul><li>[Enter Hamlet and Romeo] </li></ul><ul><li>Hamlet: </li></ul><ul><li>You lying stupid fatherless big smelly half-witted coward! </li></ul><ul><li>You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind! </li></ul><ul><li>You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer's day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind! </li></ul><ul><li>You are as cowardly as the sum of yourself and the difference between a big mighty proud kingdom and a horse. Speak your mind. </li></ul><ul><li>Speak your mind! </li></ul><ul><li>[Exit Romeo] </li></ul>Shakespeare Hello World (3) H [Enter Hamlet and Romeo] Hamlet: You lying stupid fatherless big smelly half-witted coward! You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind! You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer's day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind! [Enter Hamlet and Romeo] Hamlet: You lying stupid fatherless big smelly half-witted coward! You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind! – 128+32= –96 (4+1)– (–96)=101 e 101+(8 –1)=108 l ... l
  41. 41. Shakespeare Reverse <ul><li>Outputting Input Reversedly. </li></ul><ul><li>Othello, a stacky man. </li></ul><ul><li>Lady Macbeth, who pushes him around till he pops. </li></ul><ul><li>Act I: The one and only. </li></ul><ul><li>Scene I: In the beginning, there was nothing. </li></ul><ul><li>[Enter Othello and Lady Macbeth] </li></ul><ul><li>Othello: </li></ul><ul><li>You are nothing! </li></ul>
  42. 42. Shakespeare Reverse (2) <ul><li>Scene II: Pushing to the very end. </li></ul><ul><li>Lady Macbeth: </li></ul><ul><li>Open your mind! Remember yourself. </li></ul><ul><li>Othello: </li></ul><ul><li>You are as hard as the sum of yourself and a stone wall. Am I as </li></ul><ul><li>horrid as a flirt-gill? </li></ul><ul><li>Lady Macbeth: </li></ul><ul><li>If not, let us return to scene II. Recall your imminent death! </li></ul><ul><li>Othello: </li></ul><ul><li>You are as small as the difference between yourself and a hair! </li></ul>Scene II: Pushing to the very end. Lady Macbeth: Open your mind! Remember yourself. Othello: You are as hard as the sum of yourself and a stone wall. Am I as horrid as a flirt-gill? Lady Macbeth: If not, let us return to scene II. Recall your imminent death! Scene II: Pushing to the very end. Lady Macbeth: Open your mind! Remember yourself. Othello: You are as hard as the sum of yourself and a stone wall. Am I as horrid as a flirt-gill? Scene II: Pushing to the very end. Lady Macbeth: Open your mind! Remember yourself. push Lady Macbeth++ Lady Macbeth-- pop If not EOI goto scene 2
  43. 43. Shakespeare Reverse (3) <ul><li>Scene III: Once you pop, you can't stop! </li></ul><ul><li>Lady Macbeth: </li></ul><ul><li>Recall your unhappy childhood. Speak your mind! </li></ul><ul><li>Othello: </li></ul><ul><li>You are as vile as the sum of yourself and a toad! Are you better </li></ul><ul><li>than nothing? </li></ul><ul><li>Lady Macbeth: </li></ul><ul><li>If so, let us return to scene III. </li></ul><ul><li>Scene IV: The end. </li></ul><ul><li>[Exeunt] </li></ul>Scene III: Once you pop, you can't stop! Lady Macbeth: Recall your unhappy childhood. Speak your mind! Othello: You are as vile as the sum of yourself and a toad! Are you better than nothing? Scene III: Once you pop, you can't stop! Lady Macbeth: Recall your unhappy childhood. Speak your mind! Lady Macbeth-- if Lady Macbeth>0 goto scene 3 pop print
  44. 44. conclusion A conclusion is the place where you got tired of thinking -- Martin H. Fischer
  45. 45. That‘s All? No, Don´t Miss... Befunge 4-dimensional control flow Intercal Be part of the madness Unlambda Extreme functional programming Java2K Unleashing the power of rand() Malbolge Programming from hell
  46. 46. the end www.2000i.de/esolang2002/ user: pinky password: brain Vielen Dank für die Aufmerksamkeit!

×