Chef (Programmiersprache)
Chef (engl. für Koch oder Chefkoch) ist eine im Jahr 2002 von David Morgan-Mar 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. Dabei werden Werte trockener Zutaten als Zahlenwert ausgegeben, diejenigen flüssiger Zutaten als Zeichen (z. B. Buchstaben).[1] 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 Hallo-Welt-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.[2][3][4]
Literatur
- Simon Cozens: Advanced Perl Programming, 2. Auflage, O’Reilly Verlag, Sebastopol 1997/2005, S. 269f.
- Michael Mateas: Weird Languages (PDF), in: Software Studies, a Lexicon, edited by Matthew Fuller, Boston, MIT Press
Weblinks
- Offizielle Dokumentation (englisch)
- Frei erhältlicher Chef-Interpreter (Perl-Modul) auf CPAN
Einzelnachweise
- Michael Mateas, Nick Montfort: A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics (PDF; 385 kB), in: Proceedings of the 6th Digital Arts and Culture Conference, IT-Universität Kopenhagen, 1.–3. Dezember 2005, S. 144–153
- 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
- Project 6: Chef Program des Kurses LCC 2700 Introduction to Computational Media, Georgia Institute of Technology 2006