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.
12 Kommentare:
Der Kaffee im Marx ist GUT, besser als im T-Centro...... und warum geht der BvB 2-3x pro Tag ins Marx auf einen Kaffee... na weil der Kaffee GUT ist!!
Naja, das mit dem Kaffee können Raucher natürlich nicht nachvollziehen.
Aber das Grundpoblem der Menükarte ist, dass das so komplizierte Speisen sind, dass ich nicht weiß ob das eine Vorspeise, Hauptspeise oder Nachspeise sein soll.
Wenn das Menü wäre:
Leberknödelsuppe
und
Schnitzel
oder
Schweisbraten
dann würds ein kleiner Prolofraggle wie ich auch verstehen. :-)
Ich war letzte Woche im Marx und muss dem Author recht geben. Der Cafe ist voll mies und das ärgste ist die Bedienung. Geschlagene 10 Minuten bis man uns entdeckt hat. UNd für das Essen brauche sie ewig. Da kann auch der Starfernsehkoch nichts dazu beitragen. Ich wüßte auch nicht wie ich die Karte verstehen soll. Dafür sind aber die Preise gesalzen. Aber die Minilasagne war ihr Geld wert. Ich tippe auf Syntaxfehler!
Also ich muss schon zugeben das man als Raucher eingeschränkten Geschamck hat. Seit ich nicht mehr rauche schmecke ich auch vieles anders.
Grüße an Q. Du solltest STandUp-Comedian werden. Überlege dir meinen Vorschlag. Sehen uns beim nächsten Stammtisch. Habe von deinem Hassardstück zum Prüfungseinspruch gehört. Bravo!
Gruß
Andi
Nachtrag: Semantikfehler.
Den Fehler hätte ein Compiler nicht entdeckt, weil keine Syntaxverletzung vorliegt. Den erwischt du nur beim White-Boxtest.
Gruß
Andi
Syntaxfehler. Ganz klar. Die nicht vorhandenen Klammern hätte er entdecken müssen.
LL
@LL - Syntaxfehler? Was soll da ein Syntaxfehler sein? Wie soll ein Compiler ein nicht vorhandenes Klammernpaar finden wenn es keine anderen Klammern gibt die dazu führen das er bemerkt das das andere Klammernpaar findet?
(if entwickler = Tochter and (entwickler = Mutter or entwickler = Sohn) then ...
Das muss er finden! Ich bin auch dafür das Töchter in der Bundeshymne vorkommen. Go Christl go...
Fuchsl
Klar Semantikfehler. Da gehts um den Inhalt und nicht um die Regelkonformität. Man sollte sich aber einmal den Kontrollflussgraphen der Speisekarte anschauen. Scheinbar ist da eine schiere Komplexität drinnen die der Anwender (der Gast) nicht versteht. Wieviele Knoten und Kanten hat die Karte eigentlich?
Ich denke das es notwendig wäre die ENtwickler der Karte mal beim Architekturdesign zu unterstützen. Ausserdem empfehle ich das Buch "Design Patterns für Speisekarten" aus dem O'Reilly Verlag. EIn muss für jeden Entwickler.
Also Knoten hats einen: So eine goldene Kordel mit Knoten hält das Ganze zusammen!
Kanten hats im ungeöffneten Zustand 4: Unterkante, Oberkante, Linke Kante, Rechte Kante.
Im offenen Zustand: ANzahl Seiten * 4
Nubsi, berechne bitte die Zyklomatische Komplexität!
Danke. Dafür lade ich dich auf einen Kaffee ins Marx ein. Du als Raucher schmeckst eh nichts!! ;-)
Also ich hab irgendwo mal gelernt, dass ein logisch UND einer mathematischen "Strichrechnung" und ein logisch ODER einer mathematischen "Punktrechnung" entspricht. Somit ist dit Speisekarte gemäß "Punkt- vor Strichrechnung" korrekt!
lg, Markus eL
Der Schas hat mir jetz keine Ruhe gelassen. Die Speiskarte is doch falsch! Es gilt nämlich gemäß "Rangordnung der Operatoren" UND vor ODER somit gäb's entweder (Carpaccio und Gemüse) ODER Trunthan (mit ohne Vorspeis ;-).
lg, Markus eL
eL, ich bin voll bei dir. So würde ich es auch lesen. Vielleicht ist Menükartensyntax aber anders! ;-)
lg
Q.
Kommentar veröffentlichen