Die Sprache des Backofens
Lösung geprüft
Die Aufgabe der heutigen Stunde ist die Sprache des Backofens! Das ist der Einstieg in die formalen Sprachen, und er ist absichtlich so gewählt: ein Backofen-Display ist eine echte formale Sprache, auch wenn man da nie drüber nachdenkt. Es gibt ein festes Alphabet an Zeichen und feste Regeln, in welcher Reihenfolge sie stehen dürfen.
Aufgabe 1: Welche Zeichen gehören zum Alphabet Σ der Backofensprache? Vervollständige die Menge.
Aufgabe 2: Finde das richtige Wort zum Garen des Kartoffelgratins. Anja kocht leidenschaftlich gern. Für die Zubereitung eines Kartoffelgratins soll der Backofen auf Umluft mit Grill eingestellt werden. Das Gericht soll 1 h 15 min bei 160 °C garen und um 12:30 Uhr fertig sein.
Aufgabe 3: Beschreibe und begründe, welche der folgenden Wörter syntaktisch korrekt aufgebaut und welche semantisch sinnvoll sind.
Das Display verstehen
Auf dem Display steht ein Wort wie dieses:
⊢⊣ 115 ⊣| 1230 ⚟ 160
Vier Bestandteile, jeder mit einem eigenen Symbol davor:
| Symbol | Bedeutung | Im Beispiel |
|---|---|---|
| ⊢⊣ | Garzeit (Dauer) | 115 = 1 Stunde 15 Minuten |
| ⊣| | Endzeitpunkt | 1230 = 12:30 Uhr |
| Drehknopf-Symbol | Betriebsart | Umluft mit Grill |
| ° | Temperatur | 160 Grad |
Alle Wörter auf dem Display sind nach demselben Muster gebaut: erst ein Symbol, dann die Zahl, die dazugehört – und das mehrmals hintereinander. Das Symbol sagt, was die Zahl bedeutet.
stateDiagram-v2
direction LR
[*] --> Symbol
Symbol : Symbol (Garzeit, Endzeit oder Betriebsart)
Zahl : Zahl (Dauer, Uhrzeit oder Temperatur)
Symbol --> Zahl
Zahl --> Symbol : noch ein Block
Zahl --> [*] : Wort zu Ende
Die Blöcke müssen dabei nicht in einer festen Reihenfolge stehen: in Aufgabe 3 kommen beide Varianten vor – einmal steht die Betriebsart vorne, einmal hinten –, und beide gelten als syntaktisch richtig.
Aufgabe 1 – Das Alphabet Σ
Σ = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Ziffern fuer Zeit und Temperatur
⊢⊣, Symbol fuer die Garzeit
⊣|, Symbol fuer den Endzeitpunkt
°, Gradzeichen
Ober-/Unterhitze, Betriebsarten
Oberhitze,
Unterhitze,
Umluft,
Grill,
Umluft mit Grill }
Wichtig ist der Gedanke dahinter: das Alphabet besteht aus den kleinsten unteilbaren Zeichen der Sprache. Die 160 ist kein Zeichen des Alphabets – sie ist ein Wort, zusammengesetzt aus den drei Zeichen 1, 6 und 0.
Die Symbole für die Betriebsarten sind dagegen unteilbar. Man kann das Umluft-Symbol nicht in kleinere Teile zerlegen, es bedeutet als Ganzes „Umluft". Deshalb gehört jede Betriebsart als eigenes Zeichen ins Alphabet.
Aufgabe 2 – Das Wort für das Kartoffelgratin
⊢⊣ 115 ⊣| 1230 [Umluft mit Grill] 160°
| Vorgabe | Wird zu |
|---|---|
| 1 h 15 min garen | ⊢⊣ 115 |
| um 12:30 Uhr fertig | ⊣| 1230 |
| Umluft mit Grill | das entsprechende Symbol am Drehknopf |
| bei 160 °C | 160° |
Die Stelle, an der man aufpassen muss: 115 heißt hier
nicht 115 Minuten, sondern 1 Stunde 15 Minuten. Das
Display kennt keinen Doppelpunkt, die Stunden stehen einfach vorne. Bei
45 Minuten stünde da 45, bei 2 Stunden 200.
Anja muss den Ofen also um 11:15 Uhr starten – das rechnet der Ofen aber selbst aus. Genau dafür gibt es die beiden Zeitangaben nebeneinander.
Aufgabe 3 – Syntax und Semantik
Bevor es losgeht, der Unterschied, um den es in der ganzen Einheit geht:
| Syntax | Semantik | |
|---|---|---|
| Frage | Ist das Wort richtig gebaut? | Ergibt es einen Sinn? |
| Prüft | Reihenfolge und erlaubte Zeichen | Bedeutung in der echten Welt |
| Beim Ofen | Stehen Garzeit, Endzeit, Betriebsart und Temperatur in der richtigen Form da? | Kann der Ofen das tatsächlich so? |
Die Lösung zu Aufgabe 3
A) ist sowohl semantisch sinnvoll wie auch syntaktisch richtig.
Der Backofen läuft mit Grill bei 200 Grad für 75 Minuten und
endet um 21:00 Uhr.
B) ist semantisch nicht sinnvoll, da man nicht zugleich Umluft und
Umluft-Grill einstellen kann.
C) ist syntaktisch richtig und semantisch sinnvoll. Der Backofen läuft
für 76 Minuten mit 230 Grad Grill und endet um 14:15.
Warum gerade B der interessante Fall ist
A und C sind unauffällig: richtig gebaut und sinnvoll. Der ganze Witz der Aufgabe steckt in B.
Bei B ist die Syntax in Ordnung – alle Bestandteile stehen an der richtigen Stelle, alle Zeichen gehören zum Alphabet, die Zahlen sind Zahlen. Ein Programm, das nur die Form prüft, würde das Wort durchwinken.
Trotzdem ist es Unsinn: es sind zwei Betriebsarten gleichzeitig eingestellt, Umluft und Umluft-Grill. Ein echter Backofen hat einen Drehknopf, der immer nur auf einer Position stehen kann. Das Wort beschreibt also etwas, das es physikalisch nicht gibt.
flowchart TD
W["Wort B"] --> B1["Umluft, 220 Grad"]
W --> B2["Umluft-Grill, 2115"]
W --> B3["Garzeit 100"]
B1 --> K["Der Drehknopf kann nur auf einer Position stehen"]
B2 --> K
K --> X["semantisch nicht sinnvoll"]
Genau das ist der Kern: syntaktisch korrekt heißt nicht automatisch sinnvoll. Umgekehrt gilt aber: was syntaktisch falsch ist, kann gar nicht erst interpretiert werden – ohne Form keine Bedeutung.
Wer den Java-Teil hinter sich hat, kennt das schon. „Die Syntax stimmt,
deshalb läuft das Programm durch – aber es macht nicht, was es soll" war
genau die Erkenntnis beim Autohaus, als tanken und
fahren noch leer waren. Semantische Fehler sind dieselbe
Sorte Fehler, nur in einer anderen Sprache.