of 46/46
Thomas Zimmermann [email protected] http://www.2000i.de/ esolang Esoterische Programmiersprac hen

esolang: Esoterische Programmiersprachen

  • View

  • Download

Embed Size (px)


Presented in 2002.

Text of esolang: Esoterische Programmiersprachen

  • 1. esolang Esoterische Programmiersprachen Thomas Zimmermann [email_address] http://www.2000i.de/

2. Esoterik Eine Definition Exklusiver Kreis Eingeweihter Heiliges Wissen und Kultpraktiken Begriffsgrundlage fr wissenschaftliche Studien Spirituelle Aufbrche in der Gegenwart Urwissen der Menschheit Okkulte Praktiken Spiritualitt und Mystik Esoterik als Religisitt 3. EsoterischeProgramm Formen

  • The Null Program
    • Ein leeres Programm.
  • Quines
    • Das Programm gibt den eigenen Quelltext aus
  • Polyglots
    • Ein Programm in mehreren Programmiersprachen
  • Palindrome Programs
    • Der Quelltext des Programms ist ein Palindrom

4. Einschub Quines

  • :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.
  • Benannt nachWillard van Orman Quine
  • Existenz beweisbar mit Fixpunkt-Theorem http://www.eleves.ens.fr:8080/home/madore/computers/quine.html
  • Universal Quinificator fr C-Programme

5. Quines Eine Analogie Quines Compiler Ausfhrung foo.xx foo foo.xx Interpreter/ Ausfhrung foo.xx foo.xx Analogie Ausfhrung Compiler Ausfhrung foo.xx Box mit Knopf Quines als Kopierer bzw. Replikator 6.

  • $ touch foo.pl
  • $ ll foo.pl
  • -rw-------1 zimmerth general0 Nov 10 16:01 foo.pl
  • $ perl foo.pl > foo.out
  • $ diff foo.pl foo.out
  • $ ll foo.out
  • -rw-------1 zimmerth general0 Nov 10 16:01 foo.out
  • $ python foo.pl > foo.out.python
  • $ diff foo.pl foo.out.python
  • $

Quines Ein Beispiel $ touch foo.pl $ ll foo.pl -rw-------1 zimmerth general0 Nov 10 16:01 foo.pl $ perl foo.pl > foo.out $ diff foo.pl foo.out $ ll foo.out -rw-------1 zimmerth general0 Nov 10 16:01 foo.out 7. Noch ein Einschub Foo

  • :foo: /foo/
    • Used very generally as a sample name for absolutely anything, esp. programs and files
    • First on the standard list of metasyntactic variables used in syntax examples (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud).

The word `foo' had an immediate prewar history in comic strips and cartoons. The earliest documented uses were in the surrealist "Smokey Stover comic strip by Bill Holman about a fireman. 8. Esoterische Programmiermethoden

  • Self Modification
  • Polycoding Polycoding is the act of non-trivially compiling or executing a single instance of code in multiple contexts.
  • Masochistic Programming
  • Size Matters, and Less is More
  • Just Plain Weird z.B. var'aq - klingonische Programmiersprache

9. Esoterische Programmiersprachen Brainfuck Shakespeare Piet Chef ? 10. brainfuck Brain: an apparatus with which we think we think. -- Ambrose Bierce 11. Brainfuck Urban Mller Brainfuck >+++++++++[-]+++++++ [-]++++++++ [-]+++++++++++[-] ++++++++[-] ++++++++[-]Increment the pointer:p++;

  • +Increment the byte at the pointer:a[p]++;
  • -Decrement the byte at the pointer:a[p]--;
  • .Output the byte at the pointer:putchar(a[p]);
  • ,Input a byte and store it in the byte at the pointer
  • [Start loop:while(a[p]){
  • ]End loop: Jump back to the matching [
  • #Dump the values of a[0] thru a[9] to the console

14. Brainfuck Hello World

  • >+++++++++[-]+++++++[-]++++++++[-]+++++++++++[-]++++++++[-]++++++++[-]>+++++++>>++>>++++>>+++++++>>+>>++++>>+>>+++>>+>>+++++>>+>>++>>+>>++++++>>++>>++++>>+++++++>>+>>+++++>>++>>+>>+>>++++>>+++++++>>+>>+++++>>+>>+>>+>>++++>>+++++++>>+>>+++++>>++++++++++++++>>+>>+>>++++>>+++++++>>+>>+++++>>++>>+>>+>>++++>>+++++++>>+>>+++++>>+++++++++++++++++++++++++++++>>+>>+>>++++>>+++++++>>+>>+++++>>++>>+>>+>>+++++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>++>>++++>>+++++++>>+>>+++++>>+++++++>>+>>+++++>>+>>+>>+>>++++>>+>>++>>+>>++++++>>+>>+++++>>+++++++>>+>>++++>>+>>+>>++>>+++++>>+>>+++>>+>>++++>>+>>++>>+>>++++++>>+>>+++++>>+++++++++++++++++++>>++>>++>>+++>>++>>+>>++>>++++>>+++++++>>++>>+++++>>++++++++++>>+>>++>>++++>>+>>++>>+>>++++++>>++++++>>+>>+>>+++++>>+>>++++++>>++>>+++++>>+++++++>>++>>++++>>+>>++++++[[>++++++[-]+[-]>]]]]]]]