Wolfgang Hönig / Andreas Ecke WS 09/10
Übung Algorithmen und Datenstrukturen
2. Übung: Zusatzaufgaben
1. Wie kann mit einem Sytaxdiagrammsystem die Sprache L1 = ∅ bzw. L2 = {}
generiert werden?
2. Entwerfen Sie ein Syntaxdiagrammsystem, welchesalle Palindrome über Σ ={a, b}
generiert. (Machen Sie sich vorher klar, was das kleinste Palindrom ist.)
3. Entwerfen Sie ein Syntaxdiagrammsystem, mit dem alle einfachen Terme (überΣ = {0,1,+}) generiert werden können.
4. Die Menge der aussagenlogischen Formeln ist die kleinste MengeL(R)von Zeichen- reihen überR, den Junktoren und den Sonderzeichen, die die folgenden Eigenschaf- ten erfüllt:
a) Wenn F eine atomare Formel ist, dann ist F ∈L(R) b) Wenn F ∈L(R), dann ist ¬F ∈L(R)
c) Wenn ◦/2 ein Junktor ist und F, G∈L(R)sind, dann ist (F ◦G)∈L(R) Entwerfen Sie ein Syntaxdiagrammsystem, welches L(R) generiert. Hierbei können Sie sich auf p und q für atomare Formeln beschränken.
Hinweis: Wenn die Übung immer noch zu langweilig ist, lohnt es sich alle Syntaxdia- grammsysteme der obigen Aufgaben in die entsprechende EBNF umzuwandeln.
Lösungen
1. L1 ist durch ein endloslaufendes oder ungültiges Syntaxdiagrammsystem generier- bar. Beispiel für ein endloslaufendes SDS:
S
S
L2 kann z.B. durch S
erzeugt werden.
2. Hinweis: Das leere Wort ist auch ein Palindrom.
A
a
a A a
B
B
b
b
B b
A
Hinweis: Es ist (wie auch bei den folgenden Aufgaben) auch möglich das Problem mit nur einem Syntaxdiagramm zu lösen.
3. Ausdruck
Zahl
+
Zahl
1
0
4. Formel
Atom
Negation
Junktor
Atom p
q
Negation
¬
Formel Junktor
(
Formel ◦ Formel )