Zum Inhalt springen

„Malbolge“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K zu großen Zeilenabstand entfernt, Links optimiert
KKeine Bearbeitungszusammenfassung
Zeile 27: Zeile 27:
* In der zehnten Episode der [[Fernsehserie]] [[Elementary (Fernsehserie)|''Elementary'']], ''Leviathan'', heißt es, ein Ermittlungshinweis sei in Malbolge verfasst.<ref>Episode "Leviathan". ''[[Elementary (Fernsehserie)|Elementary]]''. Episode 10, Staffel 1. [[Columbia Broadcasting System|CBS]]. 14. Dezember 2012.</ref>
* In der zehnten Episode der [[Fernsehserie]] [[Elementary (Fernsehserie)|''Elementary'']], ''Leviathan'', heißt es, ein Ermittlungshinweis sei in Malbolge verfasst.<ref>Episode "Leviathan". ''[[Elementary (Fernsehserie)|Elementary]]''. Episode 10, Staffel 1. [[Columbia Broadcasting System|CBS]]. 14. Dezember 2012.</ref>


== Quellen ==
== Einzelnachweise ==
<references/>
<references />


== Weblinks ==
== Weblinks ==
*[http://www.lscheffer.com/malbolge.shtml Lou Scheffers Hack]
* [http://www.lscheffer.com/malbolge.shtml Lou Scheffers Hack]
*[http://www.acooke.org/malbolge.html Andrew Cookes Erklärungen zum Lisp-Suchprogramm]
* [http://www.acooke.org/malbolge.html Andrew Cookes Erklärungen zum Lisp-Suchprogramm]
*[http://www.lscheffer.com/malbolge_interp.html Interpreter-C-Quellcode]
* [http://www.lscheffer.com/malbolge_interp.html Interpreter-C-Quellcode]
*[http://www.99-bottles-of-beer.net/language-malbolge-995.html Hisashi Iizawa "99 Bottles of Beer"]
* [http://www.99-bottles-of-beer.net/language-malbolge-995.html Hisashi Iizawa "99 Bottles of Beer"]
*[http://www.matthias-ernst.eu/malbolgequine.html Matthias Ernsts Quine]
* [http://www.matthias-ernst.eu/malbolgequine.html Matthias Ernsts Quine]


[[Kategorie:Esoterische Programmiersprache]]
[[Kategorie:Esoterische Programmiersprache]]

Version vom 23. Februar 2013, 13:02 Uhr

Malbolge ist eine gemeinfreie esoterische Programmiersprache, die 1998 von Ben Olmstead entwickelt wurde. Sie wurde nach dem achten Kreis der Hölle aus Dantes Divina Commedia benannt.

Die Besonderheit von Malbolge besteht darin, dass sie als schlimmstmögliche Programmiersprache entwickelt wurde, die am schwierigsten zu bedienen ist. Allerdings ist Malbolge aufgrund des begrenzten Speichers nur mit leicht abgewandelten Verarbeitungsregeln Turing-vollständig.

Als Beweis für die schwierige Entwicklung von Programmen steht, dass das erste Malbolge-Programm erst zwei Jahre nach dem Entstehen der Programmiersprache entstanden ist. Dieses Programm wurde nicht von einem Menschen programmiert, sondern von einem in Lisp geschriebenen Programm unter Anwendung eines Such-Algorithmus gefunden. Entwickelt wurde dieses Suchprogramm von Andrew Cooke.

Es gibt mehrere Gründe dafür, dass Malbolge so schwer ist. Der wichtigste ist, dass Befehle nach ihrer Ausführung durch andere Befehle ersetzt werden. Dadurch ist es sehr aufwändig, Schleifen in Malbolge umzusetzen. Weitere Faktoren, die das Programmieren in Malbolge erschweren, sind unter anderem die Tatsache, dass die Manipulation von Datenworten nur im ternären Zahlensystem mittels Rechtsshifts und eines sehr ungewöhnlichen Operators möglich ist. Hinzu kommt, dass die Codierung eines Befehls durch ein ASCII-Zeichen von der Position des Befehls Modulo 94 abhängt und Speicherzellen nur mit einem von acht möglichen ASCII-Werten initialisiert werden können.

Dennoch gelang es Lou Scheffer, ein Programm zu entwickeln, das seine Ein- auf seine Ausgabe kopiert. Sein Bericht darüber endet mit Vorschlägen, wie die Sprache noch schwerer beherrschbar zu machen wäre.

Hello, world

Dieses Malbolge-Programm gibt "Hello, world." aus.

 (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
 hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O< 

Weitere Programme in Malbolge

Es ist mittlerweile kein Problem mehr, Programme in Malbolge zu schreiben, die lediglich einen festen String begrenzter Länge ausgeben. Die Länge des Strings ist begrenzt, weil Malbolgeprogramme nicht mehr als 59049 Befehle enthalten können.

Neben des bereits oben erwähnten cat-Programms von Lou Scheffer (welches einen Bug im Interpreter ausnutzt, der es ermöglicht, Speicherzellen mit Nicht-ASCII-Zeichen zu initialisieren) gibt es bisher (Stand: Dezember 2012) nur sehr wenige Programme in Malbolge, die Schleifen enthalten. Eines davon ist ein weiteres cat-Programm, das jedoch auch ohne Ausnutzung des Interpreter-Bugs funktioniert. Zu den eindrucksvollsten Programmen in Malbolge dürfte ein 2005 erschienenes Programm gehören, das die Lyrics des Liedes „99 Bottles of Beer“ ausgibt und dafür nichttriviale Schleifen und bedingte Verzweigungen benutzt. Der Code dieses Programms ist für einen Menschen nicht lesbar. Ein weiteres Programm in Malbolge, das mit nichttrivialen Schleifen und bedingten Verzweigungen arbeitet, ist ein Ende 2012 erschienenes Quine.

Populärkultur

  • In der zehnten Episode der Fernsehserie Elementary, Leviathan, heißt es, ein Ermittlungshinweis sei in Malbolge verfasst.[1]

Einzelnachweise

  1. Episode "Leviathan". Elementary. Episode 10, Staffel 1. CBS. 14. Dezember 2012.