Chef (Programmiersprache)
Chef (engl. für Koch oder Chefkoch) ist eine von David Morgan-Mar Anfang der 2000er entwickelte esoterische Programmiersprache. Sie beruht auf der Modifizierung von Daten auf einigen Stacks. Das Konzept ähnelt dem der esoterischen Programmiersprache Shakespeare sowie dem der „seriösen“ Programmiersprache BASIC.
Jedes Programm besteht zumindest aus folgenden Bestandteilen:
- Titel
- Liste von Variablen und ihren Werten
- Liste von Instruktionen zur Modifizierung der Stacks
Die Namen von Variablen können zwar prinzipiell frei gewählt werden, in der Regel werden Variable aber nach typischen Kochzutaten benannt. Die Stacks heißen „mixing bowls“ oder „baking dish“, stellen also Rührschüsseln und Backbleche dar. Die Befehle heißen „mix“ (mischen), „stir“ (rühren) usw. Chef-Programme lesen sich daher wie englischsprachige Kochrezepte.
Beispielprogramm
Das übliche Hello-World-Programm kann folgendermaßen geschrieben werden:
Hello World Souffle. Ingredients. 72 g haricot beans 101 eggs 108 g lard 111 cups oil 32 zucchinis 119 ml water 114 g red salmon 100 g dijon mustard 33 potatoes Method. Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquefy contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish. Serves 1.
Hierbei wird der Variable haricot beans der Unicode-Wert 72 zugewiesen, welcher das Zeichen H darstellt - die Variable eggs erhält den Wert 101 (Zeichen: e) usw. Diese Werte werden durch Put aneinandergereiht, durch Liquefy in Zeichen umgewandelt, durch Pour kopiert und schließlich durch Serve ausgegeben, so dass Hello world! ausgegeben wird.
Verwendung
Wie andere esoterische Programmiersprachen auch ist Chef nicht für den praktischen Einsatz gedacht, obwohl sich damit lauffähige Programme schreiben lassen. Die Sprache wird jedoch aus didaktischen Gründen an verschiedenen Universitäten behandelt.[1][2]
Literatur
- Simon Cozens: Advanced Pearl Programming, 2. Auflage, O’Reilly Verlag, Sebastopol 1997/2005, S. 269f.
Weblinks
- Offizielle Dokumentation (englisch)
- Frei erhältlicher Chef-Interpreter (Perl-Modul) auf CPAN
Einzelnachweise
- ↑ Prof. Dr.-Ing. habil. Matthias Werner: Algorithmen und Programmierung (Skript zur Vorlesung), Technische Universität Chemnitz, Stand: 5. September 2017 (pdf)
- ↑ Übersetzer und sprachverarbeitende Werkzeuge (Vorlesungsinhalte), Technische Universität Kaiserslautern, Sommersemester 2009