6 Was ist eine Syntax? - Ein
bierseliger Bayer im Himmel 6.1 Syntax des frohlockenden Bayern Alois
|
|
Etwas Sprachwissen- schaft | Die
Syntax einer Sprache regelt, in welcher Beziehung die
Zeichen einer Sprache zueinander stehen können. Syntax dürfen wir soweit
mit Grammatik gleichsetzen, wie wir die Hinzunahme von interpretatorischen
Inhalten verbieten. Eine Syntax ist also ein formales System. Sprechen wir über Inhalte von Zeichen, so machen wir keine Aussage mehr über die Syntax sondern über die Semantik einer Sprache. Wissen, das über die Sprache selbst hinausgeht, also Beziehung zu Gegenständen außerhalb der Sprache schafft, nenn man die Pragmatik einer Sprache. Ein Beispiel soll das Gesagte verdeutlichen: "das Haus" syntaktisch gesehen ist "das Haus" eine Aneinanderreihung von 8 Zeichen (7 Buchstaben und ein Leerzeichen). Dass das Leer- oder Zwischenzeichen zwei Wörter trennt, ist Bestandteil der Semantik und dass "das Haus" einen Gegenstand der realen Welt bezeichnet gehört schließlich zur Pragmatik. Die Lehre von der Syntax, der Semantik und der Pragmatik einer Sprache nennt man zusammenfassend die Semiotik. Der Roman "Der Namen der Rose" des Semiotikers Umberto Eco ist übrigens ein Roman über Semiotik und nur "nebenbei" ein Krimi, der in einem mittelalterlichen Kloster handelt. Der in einer Programmiersprache wie
etwa Java, C++, Delphi oder Pascal verfasste Quelltext muss syntaktisch
korrekt sein, dass er vom Compiler in eine ausführbare Maschinensprache
übersetzt werden kann. Der Compiler muss also vor dem eigentlichen
Übersetzen einen Quelltext auf syntaktische Korrektheit überprüfen
(syntaktische Fehler führen zu einem Compiler error). Tut das Programm
schließlich das, was es soll, ist es semantisch korrekt. Ist es
schließlich in dem Sinne korrekt, dass es ein Modell (mit allen
Einschränkungen) der Wirklichkeit ist, dann ist es schließlich auch
pragmatisch korrekt. |
Syntax des Frohlockens |
Wenn wir
eine Programmiersprache erlernen, beschäftigen wir uns hauptsächlich mit
der Syntax. Wenn wir später Programme schreiben wollen, die eine reale
Situation modellieren, müssen wir uns zusätzlich mit der Semantik und der
Pragmatik auseinandersetzen. Eine sehr einfache Sprache ist die Sprache
des Frohlockens. "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 sogenannte
Syntaxdiagramme. Die Sprache Frohlocken ist vollständig durch zwei
Diagramme beschrieben. 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. Kommas (,)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. Man prüfe, ob die nachfolgenden Sätze, Sätze der Sprache Frohlocken sind:
haleluja! Übertragen wir das hier gelernte auf eine Computersprache, dann sind die Atome die reservierten Wörter einer Sprache z.B. public oder class, wie wir sie in unserem ersten Programm kennen gelernt haben, ohne ihre Bedeutung (das wäre eine Frage der Semantik)) zu kennen. Ein ganzes, syntaktisch korrektes Programm entspricht dann einem Satz von Frohlocken. Ein Compiler, der bei einer Übersetzung prüft, ob das Programm syntaktisch korrekt ist, macht also zunächst nichts anders als wir, wenn wir etwa halleluja,hahahalleluuja! dahingehend untersuchen, ob es ein gültiger Satz der Sprache Frohlocken ist. Den Teil eines Compilers, der diesen Job erfüllt, nennt man einen Parser. 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. Ein Programm also zu implementieren, das bei Eingabe eines der
obigen Sätze, prüft, ob er im Sinne der Grammatik der Sprache Frohlocken
korrekt ist. |
zu 6.2 | zur www.pohlig.de (C) MPohlig 2002 |