04 Wie ist der Aufbau eines Chef-Programms?

DM’s Esoteric Programming Languages – Chef (dangermouse.net)

Recipe Title. oder Rezeptname.

Ein beliebig zu wählender Text mit dem Namen des Rezeptes. Der Text wird mit einem Punkt beendet.

Comments oder Kommentar

Ein beliebig zu wählender Text mit einer Kurzbeschreibung des Rezeptes.

Ingredients. oder Zutaten.

Die Liste der Zutaten wird in der ersten Zeile eingeleitet mit dem Schlüsselwort Ingredients – Zutaten.. Das Schlüsselwort mit einem Punkt abgeschlossen.

In den folgenden Zeilen werden die Zutaten aufgelistet nach dem Schema: menge einheit zutat

Hierbei gilt:

  • menge ist eine Ganzahl
  • einheit legt fest, ob es sich um flüssige, feste oder unspezifische Zutaten handelt. Fest Zutaten werden bei der Ausgabe als Zahlen behandelt, flüssige Zutaten als Zeichen. Als Einheiten stehen zur Verfügung:
    • g, kg, pinch(es), Prise(n)  für feste Zutaten
    • ml, l, dash(es), Spritzer  für flüssige Zutaten
    • teaspoon(s), Teelöffel, tablespoon(s), Esslöffel, cup(s), Tasse(n)  für unspezifische Zutaten. Diese Zutaten können ergänzend heaped, gehäuft oder level, gestrichen angegeben werden.
  • zutat ist ein Variablennamen, der beliebig gewählt werden darf, aber immer gleich geschrieben werden muss (also immer im Singular oder Plural.

Die Zutatenliste ist optional. Ist sie vorhanden, werden die Zutaten mit den angegebenen Ausgangswerten und Maßen angegeben. Wird eine Zutat wiederholt, wird der neue Wert verwendet und frühere Werte für diese Zutat werden ignoriert.

Cooking Time oder Garzeit

Die Garzeit ist optional und erhöht die Authentizität.

Cooking time: zeit minute(s) | hour(s) oder Garzeit: zeit Minute(n) | Stunde(n).

Oven Temperature oder Vorheizen

Einige Rezepte erfordern das Backen. Wenn dies der Fall ist, wird eine Backofentemperatur angegeben. Diese Angabe ist fakultativ. Die Temperatur und die Markierung sind Zahlen.

Pre-heat oven to temperature degrees Celsius (gas mark marke). oder Ofen auf temperatur Grad Celsius (Gas Skala marke) vorheizen.

Method oder Zubereitung

Die Liste der Anweisungen zur Zubereitung wird in der ersten Zeile eingeleitet mit dem Schlüsselwort Method. oder Zubereitung:

In den folgenden Zeilen werden die einzelnen Anweisungen aufgelistet.  Die einzelnen Anweisungen werden jeweils durch einen Punkt getrennt.

Anweisung DEUAnweisung ENGErklärung
zutat aus dem Kühlschrank nehmen.Take ingredient from refrigerator.Dies liest einen numerischen Wert von STDIN in die benannte zutat und überschreibt alle vorherigen Werte.
zutat in die [n-te] Schüssel geben.Put ingredient [into [n-te] mixing bowl].Gibt den Inhalt der Variablen zutat auf den  [n-te] Stapel.
zutat in die [n-te] Schüssel unterheben.Fold ingredient [into [n-te] mixing bowl].Entnimmt den obersten Wert vom [n-ten] Stapel und schreibt ihn in die Variable zutat
zutat in die [n-te] Schüssel dazugeben.Add ingredient [into [n-te] mixing bowl].Addiert den Wert der Variablen zutat vom obersten Wert des [n-ten] Stapels und speichert das Ergebnis auf dem [n-ten] Stapel.
zutat aus der [n-te] Schüssel abschöpfen.Remove ingredient [into [n-te] mixing bowl].Subtrahiert den Wert der Variablen zutat zum obersten Wert des [n-ten] Stapels und speichert das Ergebnis auf dem [n-ten] Stapel.
zutat mit der [n-te] Schüssel kombinieren.Combine ingredient [into [n-te] mixing bowl].Multipliziert den Wert der Variablen zutat mit dem obersten Wert des [n-ten] Stapels und speichert das Ergebnis auf dem [n-ten] Stapel.
zutat mit der [n-te] Schüssel teilen.Divide ingredient [into [n-te] mixing bowl].Teilt den Wert der Variablen zutat durch den  obersten Wert des [n-ten] Stapels und speichert das Ergebnis auf dem [n-ten] Stapel.
Alle festen Zutaten zu der [n-ten] Schüssel hinzugeben.Add dry ingredients to [n-te] mixing bowl.Addiert die Werte aller festen Zutaten und speichert das Ergebnis auf dem [n-ten] Stapel.
Inhalte der [n-ten] Schüssel auf dem Stövchen erhitzen.Liquefy contents of the [n-te] mixing bowl.Interpretiert alle Werte des [n-ten] Stapels als Zeichen.
zutat zerlassen.Liquefy ingredient.Dadurch wird die Zutat zutat in eine Flüssigkeit verwandelt, d. h. in ein Unicode-Zeichen für Ausgabezwecke. (Hinweis: In der ursprünglichen Spezifikation wurde das Wort “Liquify” verwendet, was ein Rechtschreibfehler ist. “Liquify” ist veraltet. Verwenden Sie in allen neuen Codes “Liquefy”).
Die Werte der Variablen zutat werden als Zeichen interpretiert.
Inhalt der [n-ten] für [n-ten] Schüssel gut verrühren.Mix [the [n-te] mixing bowl] well.Bringt alle Werte des [n-ten] Stapels in eine zufällige Reihenfolge.
zutat in die [n-te] Schüssel für n  Minuten unterrührenStir ingredient into the [n-te] mixing bowl.Wert der Variablen zutat im [n-ten] Stapel um n Positionen nach unten rotieren.
[n-te] Schüssel für n Minuten umrühren.Stir the [n-te] mixing bowl for n minute[s].Alle Werte des [n-ten] Stapels um n Positionen nach unten rotieren.
[n-te] Schüssel abwaschen.Clean [n-te] mixing bowl.[n-te] Stack löschen.
Inhalt der [n-te] Schüssel auf die [n-te] Servierplatte stürzen.Pour contents oft the [n-te] mixing bowl into the [n-te] baking dish.Bereitet alle Werte des [n-te] Stapels für die Ausgabe vor.
zutat behandeln.verb the ingredient.Beginn einer Schleife. Das Schleifenende wird mit der Anweisung Solange behandeln bis zutat zurWeiterarbeitung bereit. markiert. Sofern die Variable zutat den Wert 0 hat, wird die Schleife beendet.
Solange behandeln bis zutat zur Weiterarbeitung bereit.verb [the ingredient] until verbed.Ende einer Schleife. Der Schleifenanfang wird mit der Anweisung zutat behandeln. markiert. Sofern die Variable zutat den Wert 0 hat, wird die Schleife beendet.
Zur Seite stellen.Set aside.Dies führt dazu, dass die Ausführung der innersten Schleife, in der es vorkommt, sofort endet und die Ausführung bei der Anweisung nach dem “until” fortgesetzt wird.
Einfrieren [für n Stunde[n]].Refrigerate [for n hour[s]].Beendet sofort das Programm. Wird eine Zeitdauer angegeben, wird der Inhalt der ersten n Servierplatten ausgegeben. In einem Unterprogramm wird dieses beendet und der Inhalt der ersten Schüssel zurückgegeben.
Serviere mit beilagenrezept.Serve with supplement.Dadurch wird ein Sous-Chef aufgerufen, der sofort das genannte beilagenrezept zubereitet. Der aufrufende Koch wartet, bis der Sous-Chef fertig ist, bevor er fortfährt. Siehe den Abschnitt über Hilfsrezepte weiter unten.

Serves oder Portionen

Der letzte Abschnitt gibt an, wie viele Servierplatten ausgegeben werden sollen.

Serves: number-of-diners oder Portionen: anzahl-der-portionen

Das Programm gibt die Inhalt der entsprechenden Anzahl an Servierplatten aus. Danach endet das Programm.

Beilagenrezepte

Beilagenrezepte sind kleine Rezepte, die nach dem Hauptrezept aufgeführt werden. Beilagenrezepte werden durch Sous-Chefs ausgeführt, die ihre eigene Anzahl an Schüsseln und Servierplatten besitzen. Diese sind Kopien der Schüsseln und Servierplatten des aufrufenden Chefs.

Wenn das Beilagenrezept endet, werden die Inhalte der ersten Schüssel in die Schüssel des Chefs eingefüllt.

Ein Beilagenrezept kann die gleichen Zutaten besitzen wie das Hauptrezept.