Chef (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. 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
  2. Matthias Werner: Algorithmen und Programmierung (Skript zur Vorlesung) (Memento des Originals vom 7. Februar 2019 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/osg.informatik.tu-chemnitz.de, Technische Universität Chemnitz, Stand: 5. September 2017 (pdf)
  3. Übersetzer und sprachverarbeitende Werkzeuge (Vorlesungsinhalte)@1@2Vorlage:Toter Link/softech.informatik.uni-kl.de (Seite nicht mehr abrufbar, festgestellt im Dezember 2023. Suche in Webarchiven)  Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis., Technische Universität Kaiserslautern, Sommersemester 2009
  4. Project 6: Chef Program (Memento des Originals vom 17. März 2016 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/homes.lmc.gatech.edu des Kurses LCC 2700 Introduction to Computational Media, Georgia Institute of Technology 2006