Zur Themenübersicht
Aufgaben Grammatiken und Syntaxdiagramme
Syntaxdiagramme, Grammatiken und erkennende endliche Automaten
(EAs)
Beispiel:
Jede Programmiersprache benutzt Variablen. Diese erhalten einen Namen (Bezeichner).
Für die Vergabe von Bezeichnernamen gibt es Syntaxregeln. So lauten die Regeln
in Pascal:
- Ein Bezeichner muss mit einem Buchstaben oder dem Unterstrich beginnen.
- Nun können Zeichen aus der Menge {a,..,z,A,..Z,0,..9,_} folgen.
Diese Regeln kann man in einem Syntaxdiagramm darstellen.
Bezeichner:
Ziffer:
Buchstaben werden analog zu Ziffern in einem Syntaxdiagramm dargestellt.
:Die in
einem Kreis stehenden Symbole bezeichnet man als terminale Symbole.
Die in
einem Rechteck stehenden Symbole heißen nichtterminale Symbole.
Die
nichtterminalen Symbole können wie bei Grammatiken noch durch terminale Symbole
ersetzt werden.
Syntaxdiagramme können sowohl zur Analyse von Worten (bzw Sätzen) wie auch
zum Erzeugen derselben benutzt werden. Syntaxdiagramme dürfen dabei auf
beliebigen Wegen in der vorgegebenen Richtung durchlaufen werden. Nichtterminale
sind durch das entsprechende Syntaxdiagramm zu ersetzen. Der Vorgang ist
beendet, wenn das Ende des ersten Diagramms erreicht wurde.
Aufgaben
(Bei allen Aufgaben brauchen
nur kleine Buchstaben berücksichtigt werden.)
- Erstelle die Regeln für eine Grammatik, die Bezeichner erzeugt.
- Erstelle ein Zustandsdiagramm für einen Automaten, der Bezeichner in
Pascal erkennt.
- Erstelle ein Syntaxdiagramm für die Deklaration einer Real-Variablen ohne
Leerzeichen. (Diese werden einfach überlesen);
Das Eingabealphabet sei : {v| r| b| 1| _| ;| ,| :} statt var einfach: v;
statt real einfach r;
Übersetze dieses Syntaxdiagramm in eine Grammatik und in das
Zustandsdiagramm eines EA. Erstelle dann auch ein Modell mit G-Flap.
- Verfahre wir in Aufgabe 3 mit der Deklaration einer Integer-Konstanten.
Bsp: CONST hundert = 100;
Das Eingabealphabet sei : {c| b| 1| 0| _| ;| =}
- Überlege Dir allgemein, wie Syntaxdiagramme in Grammatiken und in
erkennende Automaten umgewandelt werden können.
- Klammerpaare:
Eine aus den Symbolen "(" bzw. ")" bestehende Eingabe
soll überprüft werden, ob die Klammerung nach algebraischen Regeln korrekt
ist. Hierbei dürfen nicht mehr als drei Klammern gleichzeitig
geöffnet sein.
- Erstelle eine entsprechenden Automaten.
- Erstelle eine zugehörige Grammatik.
- Erstelle ein zugehöriges Syntaxdiagramm.
- Erstelle einen entsprechenden Automaten für maximal fünf gleichzeitig
geöffnete Klammern.
- Begründe, dass kein EA in der Lage ist, das Problem für beliebig viele
Klammern zu lösen.
- Erstelle eine Grammatik und ein Syntaxdiagramm für algebraisch korrekte
Klammerausdrücke.
Zur
Themenübersicht |
Zum Seitenanfang |
|
Zur vorigen Seite |
Zur
nächsten Seite
|
© 2004 LK 13 If und G.
Kubitz |
Hannah-Arendt-Gymnasium, Lengerich |