klausur formale sprachen und automaten grundlagen des...
TRANSCRIPT
KlausurFormale Sprachen und Automaten
Grundlagen des Compilerbaus
25. November 2014
Name:
Unterschrift:
Matrikelnummer:
Kurs:
Aufgabe erreichbare erreichteNr. Punkte Punkte
1 102 103 124 115 96 67 118 89 7
10 1311 8
12 (Bonus) 8Summe 105 + 8
Note:
1
Seite 2 von 23
Aufgabe 1 (4+6P)
Sei Σ = {a, b}. Geben Sie deterministische endliche Automaten an, die die folgenden Sprachen erkennen.
a) L1 = {w ∈ Σ∗ | |w|a mod 3 = 0 und |w|b mod 2 = 1}
b) L2 = {w ∈ Σ∗ | w beginnt mit ab und endet mit ab}
Losung:
a)
q0 q1a
q3
b
q2a
q4
b
a
q5
bb
a
b
a
b
a
b)
q0
q1a
q5
b
a
q4b
q2
b
q3
a
a
b
a,bb
a
Seite 3 von 23
Aufgabe 1 (Fortsetzung)
Seite 4 von 23
Aufgabe 2 (3+2+5P)
Betrachten Sie den nichtdeterministischen endlichen Automaten A2 in Abbildung 1.
a) Geben Sie alle moglichen Ableitungen des Wortes abbbba auf dem Automaten A2 an.
b) Beschreiben Sie L(A2) als Menge.
c) Konvertieren Sie A2 mit dem in der Vorlesung angegebenen Verfahren in einen deterministischenendlichen Automaten.
(Der Automat ist auf der nachsten Seite noch einmal abgebildet, falls Sie mehr als eine Seite benotigen.)
q0 q3q1a
a,b
q2b a,b
Abbildung 1: Automat A2
Losung:
a) – (q0, abbbba)→ (q1, bbbba)→ (q1, bbba)→ (q1, bba)→ (q1, ba)→ (q2, a)→ (q2, ε) (akzep-tiert)
– (q0, abbbba) → (q1, bbbba) → (q1, bbba) → (q1, bba) → (q1, ba) → (q1, a) → (q1, ε) (nichtakzeptiert)
b) L(A2) = {awbx | w ∈ Σ∗, x ∈ Σ}
c) | a b--------------------------------------------> q0 | {q1} {}
q1 | {q1} {q2,q1}q2 | {q3} {q3}
* q3 | {} {}S0 = frozenset([’q0’])Delta(S0, a) = frozenset([’q1’])S1 = frozenset([’q1’])Delta(S0, b) = frozenset([])S2 = frozenset([])Delta(S1, a) = frozenset([’q1’])State is equal to S1Delta(S1, b) = frozenset([’q1’, ’q2’])S3 = frozenset([’q1’, ’q2’])Delta(S2, a) = frozenset([])State is equal to S2Delta(S2, b) = frozenset([])State is equal to S2Delta(S3, a) = frozenset([’q1’, ’q3’])S4 = frozenset([’q1’, ’q3’])Delta(S3, b) = frozenset([’q1’, ’q3’, ’q2’])S5 = frozenset([’q1’, ’q3’, ’q2’])Delta(S4, a) = frozenset([’q1’])State is equal to S1
Seite 5 von 23
Delta(S4, b) = frozenset([’q1’, ’q2’])State is equal to S3Delta(S5, a) = frozenset([’q1’, ’q3’])State is equal to S4Delta(S5, b) = frozenset([’q1’, ’q3’, ’q2’])State is equal to S5
Ergebnis:
S0
S5
b
S4
a
S3b
S1 a
b
a
S2
a
b
b
a
b
a
Seite 6 von 23
Aufgabe 3 (2+6+4P)
Betrachten Sie den deterministischen endlichen Automaten A3 in Abbildung 2.
a) Welche Konfigurationsfolge durchlauft der Automat beim Bearbeiten des Wortes abaaaaa?
b) Minimieren Sie den Automaten A3 mit dem in der Vorlesung vorgestellten Verfahren.
c) Geben Sie eine formale Beschreibung von L(A3).
(Der Automat ist auf der nachsten Seite noch einmal abgebildet, falls Sie mehr als eine Seite benotigen.Dort finden Sie auch eine Tabelle fur Aufgabenteil 3b).)
q0q5 q6
a,b
q1
a
q3b
q2a
bb
q4
ab
ab
a
a,b
Abbildung 2: Automat A3
Losung (a):
a) (q0, abaaaaa)→ (q1, baaaaa)→ (q3, aaaaa)→ (q4, aaaa)→ (q2, aaa)→ (q4, aa)→ (q2, a)→(q4, ε)
Seite 7 von 23
Aufgabe 3 (Fortsetzung)
q0q5 q6
a,b
q1
a
q3b
q2a
bb
q4
ab
ab
a
a,b
Losung (b+c):
Tabelle fur Aufgabe 3b)
b)
q0 q1 q2 q3 q4 q5 q6
q0 o x x x x x x
q1 x o x o x x x
q2 x x o x o x x
q3 x o x o x x x
q4 x x o x o x x
q5 x x x x x o x
q6 x x x x x x o
Die Zustande q1, q3 und q2, q4 sind jeweils aquivalent und konnen zusammengefasst werden:
q0 q5 q6a,bq1
a,b
b
q2a b
a a,b
c) L(A3) = {xbnamb | x ∈ {a, b}, n ∈ N,m ∈ N+}
Seite 8 von 23
Aufgabe 4 (4+1+1+1+4P)
Sei Σ = {a, b}. Sei L4 = {akwak|k ≥ 1, w ∈ Σ∗}.
a) Geben Sie eine kontextfreie Grammatik G mit L(G) = L4 an.
b) Uberprufen Sie, welche der folgenden Worter in L4 sind. Geben Sie im positiven Fall eine Ableitungin G an.
b1) ε
b2) baa
b3) aaabaa
c) Zeigen oder widerlegen Sie: L4 ist regular.
Losung:
a) Betrachte G = 〈VN , VT , P, S〉 mit:
– VN = {S, T}– VT = {a, b}– P wie folgt:
1. S → aa
2. S → aSa
3. S → aTa
4. T → aT
5. T → a
6. T → bT
7. T → b
G ist kontextfrei und erzeugt L4
b) b1) ε /∈ L4
b2) baa /∈ L4
b3) S ⇒ (2)aSa⇒ (2)aaSaa⇒ (3)aaTaa⇒ (4)aaaTaa⇒ (7)aaabaa Also: aaabaa ∈ L4
c) Behauptung: L4 ist regular, denn L4 = {awa | w ∈ Σ∗} (alle weiteren a an Anfang und Endekonnen auch in w verschoben werden. Damit gilt: L4 = L(a(a+ b)∗a), also regular.
Seite 9 von 23
Aufgabe 4 (Fortsetzung)
Seite 10 von 23
Aufgabe 5 (1+1+1+6P)
Sei Σ = {a, b}. Sei L5 = {akbwbak|w ∈ Σ∗, k ∈ N}.
a) Uberprufen Sie, welche der folgenden Worter in L5 sind.
a1) bb
a2) aababa
a3) aabbbaa
b) Zeigen oder widerlegen Sie: L5 ist regular.
Losung:
a) a1) bb ∈ L5
a2) aababa /∈ L5
a3) aabbbaa ∈ L5
b) Behauptung: L5 ist nicht regular. Beweis per Pumping-Lemma.
Annahme: L5 sei regular. Dann gilt: ∃n ∈ N mit der Eigenschaft, dass jedes Wort s ∈ L mit |s| ≤ nals uvw dargestellt werden kann, so dass v 6= ε, |uv| ≤ n, und ∀h ∈ N : uvhw ∈ L5.
Betrachte das Wort anbban ∈ L5. Dann gilt: u = ai, v = aj , w = an−(i+j)ban und j > 0. PerPumping Lemma muss dann auch uv0w = an−jbban ∈ L5 sein. Da j 6= 0 ist das aber nicht derFall. Also ist die Annahme falsch und L5 nicht regular.
Seite 11 von 23
Aufgabe 6 (2+4P)
Sei Σ = {a, b}. Betrachten Sie den Automaten A6 in Abbildung 3.
q0 q2
b
a
b
q1
a ab
Abbildung 3: Automat A6
a) Stellen Sie ein Gleichungssystem auf, das die an den verschiedenen Zustanden akzeptierten Sprachenbeschreibt.
b) Losen Sie dieses Gleichungssystem und geben Sie so einen regularen Ausdruck an, der die von A6
akzeptierte Sprache beschreibt.
Losung:
a) – L0 = aL1 + bL0
– L1 = aL2 + bL1
– L2 = aL0 + bL2 + ε
b) – L1 = b∗aL2 (Arden’s Lemma)
– L2 = b∗(aL0 + ε) (Arden’s Lemma)
– L1 = b∗a(b∗(aL0 + ε)) (Einsetzen L2)
–
L0 = b∗aL1 (Arden)= b∗a(b∗a(b∗(aL0 + ε))) (EinsetzenL1)= b∗a(b∗a(b∗ + b∗aL0)) (Umformen)= b∗a(b∗ab∗ + b∗ab∗aL0) (Ausmultiplizieren)= b∗ab∗ab∗ + b∗ab∗ab∗aL0 (Ausmultiplizieren)= (b∗ab∗ab∗a)∗b∗ab∗ab∗ (Arden)
Seite 12 von 23
Aufgabe 6 (Fortsetzung)
Seite 13 von 23
Aufgabe 7 (2+4+2+3P)
Sei Σ = {a, b} und G7 = ({S, T, U}, {a, b}, {S → aTU, TU → Sb, TU → b}, S). Bestimmen Sie:
a) den maximalen Typ der Grammatik in der Chomsky-Hierarchie,
b) die erzeugte Sprache L(G7),
c) den maximalen Typ der erzeugten Sprache in der Chomsky-Hierarchie.
d) Geben Sie eine zu G7 aquivalente Grammatik mit dem maximal moglichen Typ an.
Losung:
a) Die Grammatik ist Typ 0. Sie ist nicht kontextsensitiv, da z.B. TU → Sb nicht kontext-erhaltend ist,und nicht kontextfrei, da z.B. TU → Sb nicht nur ein NTS auf der linken Regelseite hat.
b) L(G7) = {anbn | n ∈ N+}
c) Typ 2 (kontextfrei)
d) Betrachte G = 〈VN , VT , P, S〉 mit:
– VN = {S}– VT = {a, b}– P wie folgt:
1. S → aSb
2. S → ab
G ist kontextfrei und erzeugt L7
Seite 14 von 23
Aufgabe 8 (6+1+1P)
Sei L8 = {anbmcp | m,n, p ∈ N und n+ p = m}.
a) Geben Sie eine kontextfreie Grammatik G an, die die Sprache L8 erzeugt.
b) Geben Sie Ableitungen in G fur die folgenden Worter an:
b1) abbbcc
b2) bbcc
Losung:
a) Betrachte VN = {S,A,C}, VT = {a, b, c} und
P = {S → ε
S → A
S → B
S → AB
A→ aAb
A→ ab
C → bCc
C → bc
Dann ist G = 〈VN , VT , P, S〉 kontext-frei und erzeugt L8.
b) b1) S ⇒ AC ⇒ abC ⇒ abbCc⇒ abbbcc
b2) S ⇒ C ⇒ bCc⇒ bbcc
Seite 15 von 23
Aufgabe 8 (Fortsetzung)
Seite 16 von 23
Aufgabe 9 (7P)
Transformieren Sie die folgende GrammatikG9 mit dem in der Vorlesung gezeigten Verfahren in Chomsky-Normalform.
G9 = ({S,A,B,C,D,E}, {b, c, d}, P, S)
P = {S → AC | CCDA→ AB
B → S | bC → D | cD → Sd | dE → SB | d}
Losung:
• Schritt 1: Elimination von Kettenregeln der Form S → T
– B → S
∗ N(S) = {S}: Ersetzte B → S durch· B → AC
· B → CCD
– C → D
∗ N(D) = {D}: Ersetze C → D durch· C → Sd
· C → d
– Ergebnis:
P = {S → AC | CCDA→ AB
B → AC | CCD | bC → Sd | d | cD → Sd | dE → SB | d}
• Schritt 2: Entferne nicht-terminierende Symbole:
– Initial: B,C,D,E– Iteration: S– Nicht terminierend: A
Ergebnis:
P = {S → CCD
B → CCD | bC → Sd | d | cD → Sd | dE → SB | d}
Seite 17 von 23
Aufgabe 9 (Fortsetzung)
• Schritt 3: Entferne nicht-erreichbare Symbole
– Erreichbar: {S,C,D, d, c}– Nicht erreichbar: B,E, b
– Ergebnis:
P = {S → CCD
C → Sd | d | cD → Sd | d
• Schritt 4: Ersetze D durch Xd:
P = {S → CCD
C → SXd | d | cD → SXd | dXd → d
• Auflosen von zu großen rechten Seiten:
– Ersetzte S → CCD durch S → CC1, C1 → CD
– Endergebnis:
∗ VN = {S,C,C1, D,Xd}, Vt = {c, d}
P = {S → CC1
C1 → CD
C → SXd | d | cD → SXd | dXd → d
∗ G′9 = 〈VN , VT , P, S〉
Seite 18 von 23
Aufgabe 10 (6+4+3P)
Betrachten Sie die folgende Grammatik:
G10 = ({S,A,B,C,D}, {a, b, c}, P, S)
P = {S → AD
A→ a | bB → b | aC → CS | cD → BC}
a) Uberprufen Sie mit Hilfe des CYK-Algorithmus, welche der folgenden Worter von G10 erzeugtwerden:
a1) w1 = bbcabc
a2) w2 = acbc
b) Beschreiben Sie die von G10 erzeugte Sprache L(G10) formal. Dies konnen Sie durch Angabe alsMenge oder, falls L(G10) regular ist, durch Angabe eines regularen Ausdrucks tun.
Losung fur Teil a1)
1 2 3 4 5 6
1 A,B - S - - S
2 A,B D - - D
3 C - - C
4 A,B - S
5 A,B D
6 C
w = b b c a b c
Ist w1 ∈ L(G10)? Ja
Losung fur Teil a2)
1 2 3 4
1 A,B D - -
2 C - -
3 A,B D
4 C
w = a c b c
Ist w2 ∈ L(G10)? Nein
Seite 19 von 23
Aufgabe 10 (Fortsetzung)
Seite 20 von 23
Aufgabe 11 (2+2+4P)
Gegeben sei der Kellerautomat A11 = ({q0, qf}, {a, b}, {Z0, A,B}, δ, q0, Z0, {qf}), wobei δ in der fol-genden Tabelle angegeben ist.
q0 a Z0 AZ0 q0q0 a A AA q0q0 a B ε q0q0 b Z0 BZ0 q0q0 b A ε q0q0 b B BB q0q0 ε A A qfq0 ε B B qf
a) Geben Sie fur die folgenden Worter
– falls das Wort in L(A11) enthalten ist, eine akzeptierende Konfigurationsfolge,
– falls das Wort nicht in L(A11) enthalten ist, eine Konfigurationsfolge, bei der das gesamte Wortgelesen wird, an.
a1) w1 = aaabbb
a2) w2 = aababbbb
b) Beschreiben Sie formal die von A11 akzeptierte Sprache als Menge.
Losung:
a) a1)
q0, aaabbb, Z0
q0, aabbb, AZ0
q0, abbb, AAZ0
q0, bbb, AAAZ0
q0, bb, AAZ0
q0, b, AZ0
q0, ε, Z0
Das Wort wird nicht akzeptiert, da q0 /∈ F
a2)
q0, aababbbb, Z0
q0, ababbbb, AZ0
q0, babbbb, AAZ0
q0, abbbb, AZ0
q0, bbbb, AAZ0
q0, bbb, AZ0
q0, bb, Z0
q0, b, BZ0
q0, ε, BBZ0
qf , ε, BBZ0
Das Wort wird akzeptiert, da qf ∈ F
b) L(A11) = {w ∈ {a, b}∗ | |w|a 6= |w|b}
Seite 21 von 23
Aufgabe 11 (Fortsetzung)
Seite 22 von 23
Aufgabe 12 (Bonus) (5+3P)
100% konnen ohne diese Aufgabe erreicht werden!
a) Folgern Sie aus der Unentscheidbarkeit des Leerheitsproblems fur kontextsensitive Grammatiken,dass auch das Aquivalenzproblem fur kontextsensitive Grammatiken unentscheidbar ist.
b) Begrunden Sie, warum es nicht moglich ist, mit Hilfe des Pumping-Lemmas die Nichtregularitat vonendlichen Sprachen zu zeigen.
Losung:
a) Eine kontext-sensitive Grammatik G mit L(G) = {} ist einfach anzugeben (z.B. durch eine leereMenge von Produktionen). Wenn das Aquivalenzproblem entscheidbar ware, dann konnte man dasLehrheitsproblem trivial auf die Aquivalenz zu G zuruckfuhren und so entscheiden. Da das Lehr-heitsproblem aber unentscheidbar ist, muss auch das Aquivalenzproblem unentscheidbar sein.
b) Alle endlichen Sprachen sind regular. Dies kann z.B. trivial durch einen regularen Ausdruck gezeigtwerden, der alle Worte der Sprache (und nur diese) als Alternative enthalt, oder alternativ durcheinen NFA, der mit einem ε-Ubergang vom Startzustand zu einer linearen Zustandskette pro Wortubergeht.
Technisch gilt das Pumping Lemma mit einem n, dass großer als die Lange des langsten Wortes derSprache ist. Es existiert dann aber kein Wort meht, das aufgepumpt werden kann.
Seite 23 von 23
Ende