HQ9+
HQ9+ ist eine Parodie auf esoterische Programmiersprachen, die selbst nicht Turing-vollständig ist, da weder bedingte Anweisungen noch Schleifen möglich sind. Entwickelt wurde HQ9+ vom späteren Google-Mitarbeiter Cliff L. Biffle, der daneben auch die Turing-vollständigen esoterischen Programmiersprachen 4DL sowie Beatnik schuf, in denen Quelltexte als Hyperwürfel bzw. nach den Scrabble-Regeln zu bewertende Texte notiert werden müssen.
Biffle entwickelte mit HQ9+ eine Sprache, mit der in Programmierkursen häufig gestellte Aufgaben trivial gelöst werden können. Hallo-Welt-Programme etwa dienen dem Kennenlernen grundlegender syntaktischer Elemente einer Programmiersprache und Zählreime dem Kennenlernen von Schleifen. Die Entwicklung eines Quines dient als Indiz für die Turing-Vollständigkeit einer Sprache. HQ9+ führt diese Aufgaben ad absurdum, indem es nicht nur eigene Befehle dafür einführt, sondern den Sprachumfang darauf beschränkt.
Das Prinzip der Trivialisierung setzt sich in der objektorientierten Variante HQ9++ von David Morgan-Mar[1] fort, bei der Objekte erstellt werden können, die, wie auch der Zähler, keine Funktion erfüllen können. HQ9+- von Ivan Zaigralin[2] erweitert die Sprache nochmals um einen Operator zur Qualitätskontrolle, der Syntax- und verschiedene Laufzeitfehler auslöst und so das Verhalten des Interpreters oder (Trans-)Compilers in diesen Fällen testet.
Befehlssatz
[Bearbeiten | Quelltext bearbeiten]Jedes Zeichen im Namen steht für einen der verfügbaren Befehle der Sprache:
H | Gibt den Text „Hello World!“ aus. |
---|---|
Q | Gibt den eigenen Quelltext aus und ahmt damit das Verhalten eines Quines nach. |
9 | Gibt den Liedtext von „99 Bottles of Beer on the Wall“[3] aus. |
+ | Erhöht den Akkumulator um eins. |
Beispiele
[Bearbeiten | Quelltext bearbeiten]Eingabe | Ausgabe |
---|---|
H | Hello world! |
HQ | Hello world! HQ |
QQQQ | QQQQ QQQQ QQQQ QQQQ |
Q+Q+Q | Q+Q+Q Q+Q+Q Q+Q+Q |
Literatur
[Bearbeiten | Quelltext bearbeiten]- Philipp Winterberg: Das "99 Bottles of Beer"-programm: Eine Reise Durch Die Welt Der Programmiersprachen, 2013, S. 46 [1]
- Тюгашев Андрей Александрович: Языки программирования. Учебное пособие. Стандарт третьего поколения, "Издательский дом ""Питер""", 2014, S. 246 [2]
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Dokumentation von HQ9++ auf der Webseite des Autors
- ↑ Dokumentation von HQ9+- auf der Webseite des Autors
- ↑ siehe dazu das Archiv 99 Bottles of Beer für mehr als 1000 Programmier-Beispiele, siehe auch das E-Book von Philipp Winterberg (pdf) (zu HQ9+: S. 46)
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Dokumentation und Entstehungsgeschichte von HQ9+ ( vom 24. Januar 2010 im Internet Archive) (englisch) auf der Webseite des Autors
- Online Interpreter