Posts mit dem Label Compiler werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Compiler werden angezeigt. Alle Posts anzeigen

Samstag, 23. Januar 2010

Q99: Ist das ein Semantikfehler oder ein Syntaxfehler?


Freitag, Mittagessen im Marx. Dort wo hervorragendes Essen auf den grauslichsten Kaffee trifft. Grauslichster Kaffee wo gibt. Wirklich, believe me! Normalerweise gehen wir ins T-Lunch, Massenabfertigung ohne Speisekarte. Na ja nicht ganz, die Speisekarte steht auf einer schwarzen Tafel beim Eingang. Liest im Prinzip eh keiner mehr. Weil es eh ein Essensradl gibt. Alle drei Wochen das Gleiche! Ich kenne schon den Product Lifecycle des Wolfbarsch auswendig. Aber ja, zurück zum Marx, dorthin wo es den schlechtesten Kaffee gibt der jemals gebräut wurde. Den würde sogar jemand zurück schicken der den amerikanischen Neverending Coffeepott gewohnt ist.

Aber was soll’s. Wir waren bei der Speisekarte. Auf den ersten Blick nichts Ungewöhnliches.

Dort steht nämlich:

Marx Mittagsmenü – 10,40 Euro

Rindfleisch Carpaccio auf Rucola  mit Balsamicoreduktion
und
Gesottenes Gemüserelish auf Weizenflade
oder
Truthahngeschnetzeltes im Tomatensouce und Couscous

Die ganze Bande stellt im Bruchteil einer Sekunde fest was heute den Schlund runter soll. Die ganze Bande? Nein. Ein unbeugsamer Fraggle, nenne wir ihn FRAFU, leistet Widerstand und stellt fest das da die Menüsyntax nicht stimmt. Entwickler nehmen nicht alles so einfach hin. Die hinterfragen, die tüfftln, die denken nach. Auch wenn’s nur ums Essen geht. Ja, unsere Entwickler. Unsere Söhne. Sorry, und natürlich Töchter.

Mit einem „Vasteh i net, des is doch foisch! Des is a Bledsinn!“ zieht der 65% Fraggle die Aufmerksamkeit auf sich. Darauf der Rest der Bande „No wos vastehst net? Is eh klor! Du kriagst de Vurspeis und des Gehmüse oder de Vurspeis und den KussKuss!“.

Recht hat die Bande. Denkt der gemeine Speisekartenleser (aka der Rest der Bande),  aber nicht der Entwickler in FRAFU. Der denkt natürlich in Codesyntax, der denkt wie ein Semantischer-Syntax-Compiler. Wie ein Speisekartencompiler. Und das Gerät hat recht. Außer es wären Klammern gesetzt. Nur Klammern sehe ich keine. Oder habe ich eine Flatulenz auf den Augen?

Zur Erinnerung:
  • Vor der Berechnung des Wertes eines (logischen) Operators werden die Werte aller seiner Operatoren bestimmt.
  • Die Und-Verknüpfung && (Konjunktion) und Oder-Verknüpfungen || (Disjunktion) verkürzen u.U. die Auswertung:
  • Eine Oder-Verknüpfung ist generell wahr, sobald der erste wahre Operand gefunden wird.
  • Eine Und-Verknüpfung ist generell falsch, sobald der erste falsche Operand gefunden wird.
  • In diesen Fällen werden bei den Operatoren && und || die restlichen Operanden nicht mehr ausgewertet.
  • Die Auswertung findet im Regelfall von links nach rechts statt, es sei denn sie wird durch runde Klammern anders vorgegeben.
Ist das jetzt ein Semantikerfehler? Oder ein Syntaxfehler? Oder gar kein Fehler? Bin gespannt auf die Kommentare der Bloglesenden Menükartenkompiler und die Abstimmung in der Umfrage (rechts oben im Blog)!