Esoterische Programmiersprache

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. November 2010 um 12:23 Uhr durch Androl (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Esoterische Programmiersprachen sind Programmiersprachen, die nicht für den praktischen Einsatz entwickelt wurden, sondern ungewöhnliche Sprachkonzepte umsetzen. Eine einfache Bedienung ist selten, teilweise werden Sprachen konzipiert, um möglichst komplizierte Algorithmen oder unverständliche Syntax zu haben, oft aber auch um neue Ideen auszuprobieren, oder um ungewöhnliche Möglichkeiten wie extreme Vereinfachung aufzuzeigen. Mit Esoterik im eigentlichen Sinn haben esoterische Programmiersprachen nichts zu tun.

Die Motivation hinter der Entwicklung von esoterischen Programmiersprachen kann unterschiedlich sein. In einigen Fällen handelt es sich schlicht um akademische Scherze, häufig setzt sich aber der Entwickler der Sprache ein bestimmtes Ziel. So wurden zum Beispiel bei Brainfuck konventionelle Spracheigenschaften so weit wie möglich entfernt, bis eine turingmaschinenähnliche Sprache übrig blieb, die mit einem extrem kleinen Compiler auskommt.

Die Beschäftigung mit esoterischen Programmiersprachen kann zu tieferem Verständnis seriöser Programmiersprachen sowie zur Verbesserung strukturellen Denkens führen. Praktische Bedeutung haben die esoterischen Programmiersprachen somit in Forschung und Lehre. Abhängig vom verfolgten Konzept können esoterische Programmiersprachen Konzepte für Sprachdesign und/oder Systemdesign demonstrieren. Allerdings gibt es eine Vielzahl von esoterischen Programmiersprachen, die nicht originär sind, sondern nur Konzepte anderer esoterischer Programmiersprachen unwesentlich verändern.

Einer der produktivsten Entwickler esoterischer Programmiersprachen ist David Morgan-Mar,[1] im deutschsprachigen Raum Gerson Kurz.[2]

Beispielsprachen

  • 3Code von Sean Heber
  • Beatnik (Wörter stehen für ihre Scrabble-Werte) von Cliff L. Biffle
  • Befunge (zweidimensionale Sprache) von Chris Pressey
  • Bo³ (ähnlich Befunge) von Markus Bode
  • BIT von David Morgan-Mar
  • Brainfuck (minimale imperative Programmiersprache, winziger Compiler) von Urban Müller
  • Brainfuck2D (Brainfuck auf die Ebene projiziert)
  • Chef (Code sieht aus wie ein Kochrezept) von David Morgan-Mar
  • Cow (Code besteht aus Kuhlauten (Moo), basiert auf Brainfuck) von Sean Heber
  • Emoticon (hat Emoticons als Befehle)
  • Haifu von David Morgan-Mar
  • HQ9+ (Programmiersprache spezialisiert auf triviale Aufgaben) von Cliff L. Biffle
  • INTERCAL (sollte das Programmieren erschweren) von Donald R. Woods und James M. Lyon
  • Iota and Jot (hat nur 2 Befehle)
  • Java2K (Wahrscheinlichkeitstheoretische Sprache) von Gerson Kurz
  • KaForkL (Programmieren mit RGB-Bildern inklusive grafischer IDE) von Kore Nordmann[3]
  • LOLCODE (Die Syntax besteht aus falsch geschriebenem Netzjargon.) von Adam Lindsay
  • Loopy (ähnlich Brainfuck2D)
  • Malbolge (erklärtermaßen schlimmste Programmiersprache) von Ben Olmstead
  • Ook! (Syntax besteht einzig und allein aus dem Wort „Ook“ sowie den Zeichen: .?!) von David Morgan-Mar
  • Piet (Programmcode besteht aus Bildern) von David Morgan-Mar
  • Shakespeare Programming Language (Code sieht wie ein Stück von Shakespeare aus) Kalle Hasselström und Jon Åslund
  • Taxi (Wegbeschreibung an einen Taxifahrer) von Sean Heber
  • Unlambda (Minimale funktionale Programmiersprache)
  • Whirl von Sean Heber
  • Whenever von David Morgan-Mar
  • Whitespace (Code besteht nur aus nichtdruckbaren Zeichen) von Edwin Brady und Chris Morris
  • ZOMBIE von David Morgan-Mar

Siehe auch

Liste von Hallo-Welt-Programmen - Exotische Programmiersprachen

Literatur

  • Oliver Lau: Hexenwerk – Ein Plädoyer für esoterische Programmiersprachen. In: c’t 22/2007, S. 192–199.

Einzelnachweise

  1. DM’s Esoteric Programming Languages auf dangermouse.net
  2. Gerson Kurz: programming languages
  3. KaForkL - image programming language

Weblinks