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-MarDokumentation von HQ9++ auf der Webseite des Autors fort, bei der Objekte erstellt werden können, die, wie auch der Zähler, keine Funktion erfüllen können. HQ9+- von Ivan ZaigralinDokumentation von HQ9+- auf der Webseite des Autors 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“siehe dazu das Archiv 99 Bottles of Beer für mehr als 1000 Programmier-Beispiele, siehe auch (zu HQ9+: S. 46) aus. + Erhöht den Akkumulator um eins.
Beispiele Eingabe AusgabeHHello world!HQHello world!HQQQQQQQQQQQQQQQQQQQQQQ+Q+QQ+Q+QQ+Q+QQ+Q+Q
Literatur Philipp Winterberg: Das "99 Bottles of Beer"-programm: Eine Reise Durch Die Welt Der Programmiersprachen, 2013, S. 46 Тюгашев Андрей Александрович: Языки программирования. Учебное пособие. Стандарт третьего поколения, "Издательский дом ""Питер""", 2014, S. 246
Einzelnachweise
Weblinks (englisch) auf der Webseite des Autors Online Interpreter
Kategorie:Esoterische Programmiersprache Kategorie:Wissenschaftlicher Witz