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 Variablen aber nach typischen Kochzutaten benannt. Dabei werden Werte trockener Zutaten als Zahlenwert ausgegeben, diejenigen flüssiger Zutaten als Zeichen (z. B. Buchstaben).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 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.Matthias Werner: , Technische Universität Chemnitz, Stand: 5. September 2017 (pdf), Technische Universität Kaiserslautern, Sommersemester 2009 des Kurses LCC 2700 Introduction to Computational Media, Georgia Institute of Technology 2006

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

Kategorie:Esoterische Programmiersprache