Wir haben gesehen, dass man die Grammatik der Turtle mit Hilfe von Syntaxdiagrammen grafisch darstellen kann. Syntaxdiagramme sind ein mächtiges Werkzeug in der Informatik. So kann man mit Hilfe von Syntaxdiagrammen eine ganze Sprache festlegen. Wir zeigen dies am Beispiel der Himmelsprache 'Frohlocken'. "Sie ist leicht erlernbar, denn sie ist eine Teilmenge der bayrischen Sprache und somit keine Fremdsprache (?)". 'Frohlocken' stammt aus einer Aufgabe des 9. Bundeswettbewerbs Informatik 1990.
Wie Sätze in dieser Sprache gebildet werden, beschreiben Syntaxdiagramme. Sie ist vollständig durch zwei Diagramme beschrieben
(Siehe Darstellung rechts) . Das erste ist so zu lesen, dass ein Satz dieser Sprache aus ein- oder mehrmaligem
'hosianna singen' besteht; mehrfaches 'hosianna singen' wird durch Kommata getrennt und das letzte
'hosianna' singen muss mit einem Ausrufezeichen (!) abgeschlossen werden. Kommata (,)und Ausrufezeichen werden nicht weiter erklärt, sie sind sog. Atome der Sprache.
'hosianna singen' ist dagegen weiter auflösbar. Nach welchen Regeln dies geschieht, beschreibt das zweite Syntaxdiagramm. Unschwer erkennt man weitere Atome der Sprache:
ha, l,
le, lu,
u und ja. In welcher Anordnung (allgemeiner in welcher Beziehung) sie auftreten dürfen ist leicht zu erkennen.
Die
Aufgabe des Bundeswettbewerbes bestand nun darin, in einer gängigen
Sprache (damals z.B. Turbo Pascal) einen Parser für das Frohlocken zu
schreiben. Es handelt sich dabei um ein Computerprogramm, das eingegebene
Sätze dahingehend überprüft, ob sie grammatikalisch richtig sind, also der
Syntax gehorchen
Übrigens: Ein 10faches, möglicherweise lautes, etwas ironisierend, lachend
vorgetragenes
ha zu Beginn
eines korrekten Satzes könnte Petrus wohl weniger gefallen haben, so dass
er es aus semantischen Gründen wohl eher abgelehnt hat und Aloisius mit
einer wichtigen Botschaft auf die Reise zur Bayerischen Staatsregierung
schickte, wo er, so wird in der Geschichte weitererzählt, nie ankam, weil
er im Münchner Hofbräuhaus hängen blieb .
Man prüfe, welche der nachfolgenden Sätze, keine Sätze der Sprache 'Frohlocken' sind (mehrfaches Ankreuzen ist u.U. angezeigt)
Eine Turtle mit dem Namen 't1' soll 100 Einheiten vorwärts laufen. Welche Methodenaufrufe führen zum Ziel?
Welche Farbe bekommt eine Turtle t2, wenn man für Sie die Methode 't2.setColor(new Color(255, 255, 0))' aufruft?
Wie viele Farben kann eine Turtle annehmen?