HQ9+
# 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 fort, bei der Objekte erstellt werden können, die, wie auch der Zähler, keine Funktion erfüllen können. HQ9+- von Ivan Zaigralin 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“ 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 |
