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

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

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

  • Philipp Winterberg: Das "99 Bottles of Beer"-programm: Eine Reise Durch Die Welt Der Programmiersprachen, 2013, S. 46 [1]
  • Тюгашев Андрей Александрович: Языки программирования. Учебное пособие. Стандарт третьего поколения, "Издательский дом ""Питер""", 2014, S. 246 [2]

Einzelnachweise

  1. Dokumentation von HQ9++ auf der Webseite des Autors
  2. Dokumentation von HQ9+- auf der Webseite des Autors
  3. 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