Tutonaut
quine
Druckt sich selbst aus - Helau.

Warum druckt sich das Programm selbst aus?

Was ein Quine ist? Selbstreferenzieller Spielkram für Nerds und Programmierer. Warum man das wissen muss? Muss man nicht. Aber es reicht für 5 Minuten Teckie-Bespaßung 😉

Kurz mal Zeit für einen Nerd-Quicky: Da sitze ich und schreibe Artikel über esoterische Programmiersprachen (doch, das gibt’s – und ja, das ist spannend), da stoße ich auf etwas namens Quine. Ein Quine ist ein Programm, das den eigenen Quellcode ausdruckt – für manch Coder offenbar eine Art Sport, dies in jedweder Sprache zu realisieren. Wer Spaß an Teckie-Quatsch und fünf Minuten Zeit für etwas „irgendwie lustiges“ hat —>

Quine mit Esoterik

Ein Quine druckt sich also selbst aus – und mit normalen Programmiersprachen ist das nicht so trivial, wie es vielleicht klingt. Aber Ihr könnt es mittels esoterischer Programmiersprache im Browser oder ohne Esoterik in einem Linux-Terminal anschauen. Die Esoterik bietet HQ9+ als Lösung. Dem heutigen Google-Forschungsmitarbeiter Cliff L. Biffle viel auf, dass für (esoterische) Programmiersprachen immer wieder drei Beispiel genommen wurden: Ein Hallo-Welt-Programm (druckt „Hallo, Welt!“), die Ausgabe des Textes von 99 Flaschen Bier an der Wand und eben ein Quine – und entwickelte die doch recht spezielle Sprache HQ9+. Der komplette Befehlssatz: H, Q, 9, + – zum Ausgeben von „Hello World.“, des Quelltexts und der Bier-Lyrics; per + auch gerne mehrfach. Glaubt’er nich‘? Hier geht es zum Online-Interpreter.

Quine im Terminal

Im Linux-Terminal könnt Ihr mit Minimal-Code und dem Standard-Tool cat die Quick&Dirty-Version eines Quine basteln. Erstellt eine Textdatei, etwa „catting“, und fügt folgenden Code ein:

#!/bin/cat
Hello World - It's me, Mario!

Nun macht die Datei noch ausführbar:

chmod +x catting

Und wenn Ihr die Datei nun mit

./catting

ausführt – ratet selbst, was dann passiert 😉 Der „Trick“ ist im Shebang, der ersten Zeile zu finden – in den meisten Sktipten werdet Ihr dort „#/bin/sh““ oder ähnliches vorfinden, eben Shell-Skripte. Und hier führt eben cat aus – und cat druckt eben Dateiinhalte aus. Eben drum. (Bevor wieder gemeckert wird: Es verkettet (cat = concatenate), es druckt nicht.)

Artefakte aus Nerd- und Programmierwelten – vermutlich kein Massenthema, aber ich find’s gut. Wer noch? Hand hoch, wer schon mal was mit Quines machen musste! Wer mehr über esoterische Programmiersprachen wissen will – muss noch kurz Gedult haben, Artikel ist noch nicht online, Link folgt.

Mirco Lang

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler.

Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds.

Wenn Du hier mehr über Open Source, Linux, Bastelkram oder auch Windows-Basics lesen und Tutonaut unterstützen möchtest:
Spendier mir einen Kaffee via Paypal. Schon mal im Voraus: Danke!

Nicht verpassen: cli.help

Kommentar schreiben

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Do NOT follow this link or you will be banned from the site!