Klausur Formale Sprachen und Automaten Grundlagen des Compilerbaus

Klausur Formale Sprachen und Automaten Grundlagen des Compilerbaus 25. November 2014 Name: Unterschrift: Matrikelnummer: Kurs: Aufgabe erreichbare er...
Author: Timo Schreiber
13 downloads 0 Views 237KB Size
Klausur Formale Sprachen und Automaten Grundlagen des Compilerbaus 25. November 2014

Name: Unterschrift: Matrikelnummer: Kurs: Aufgabe erreichbare erreichte Nr. Punkte Punkte 1 10 2 10 3 12 4 11 5 9 6 6 7 11 8 8 9 7 10 13 11 8 12 (Bonus) 8 Summe 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} L¨osung:

a a

q3

a

q4 b b

b b a

q0

q5 b b

a

q1

q2

a a)

a

b a q0

q1 a

q4 a,b

b q5

b)

a b b

b q2

q3 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 m¨oglichen 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 deterministischen endlichen Automaten. (Der Automat ist auf der n¨achsten Seite noch einmal abgebildet, falls Sie mehr als eine Seite ben¨otigen.) a,b q0

a

q1

b

q2

a,b

q3

Abbildung 1: Automat A2

L¨osung: a)

– (q0 , abbbba) → (q1 , bbbba) → (q1 , bbba) → (q1 , bba) → (q1 , ba) → (q2 , a) → (q2 , ) (akzeptiert) – (q0 , abbbba) → (q1 , bbbba) → (q1 , bbba) → (q1 , bba) → (q1 , ba) → (q1 , a) → (q1 , ) (nicht akzeptiert)

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 S1 Delta(S1, b) = frozenset([’q1’, ’q2’]) S3 = frozenset([’q1’, ’q2’]) Delta(S2, a) = frozenset([]) State is equal to S2 Delta(S2, b) = frozenset([]) State is equal to S2 Delta(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 S3 Delta(S5, a) = frozenset([’q1’, ’q3’]) State is equal to S4 Delta(S5, b) = frozenset([’q1’, ’q3’, ’q2’]) State is equal to S5 Ergebnis: b a

b S0 a

S2 a S1

a

b

a b

S3

S4 a

b b

S5

Seite 6 von 23

Aufgabe 3 (2+6+4P) Betrachten Sie den deterministischen endlichen Automaten A3 in Abbildung 2. a) Welche Konfigurationsfolge durchl¨auft 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 n¨achsten Seite noch einmal abgebildet, falls Sie mehr als eine Seite ben¨otigen. Dort finden Sie auch eine Tabelle f¨ur Aufgabenteil 3b).)

b q0

a

q3

a

b b q1

a a

a,b

q4

b a

b

q5

a,b

q6

q2

Abbildung 2: Automat A3

L¨osung (a): a) (q0 , abaaaaa) → (q1 , baaaaa) → (q3 , aaaaa) → (q4 , aaaa) → (q2 , aaa) → (q4 , aa) → (q2 , a) → (q4 , )

Seite 7 von 23

Aufgabe 3 (Fortsetzung)

b q0

a

a

q3 b b

a a

q1

a,b

q4

b a

b

q5

a,b

q6

q2

L¨osung (b+c): ¨ Aufgabe 3b) Tabelle fur

q0 q1 q2 q3 q4 q 5 q6

b)

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 Zust¨ande q1 , q3 und q2 , q4 sind jeweils a¨ quivalent und k¨onnen zusammengefasst werden: b q0

a,b

q1

a a

q2

a,b b

c) L(A3 ) = {xbn am b | x ∈ {a, b}, n ∈ N, m ∈ N+ }

q5

a,b

q6

Seite 8 von 23

Aufgabe 4 (4+1+1+1+4P) Sei Σ = {a, b}. Sei L4 = {ak wak |k ≥ 1, w ∈ Σ∗ }. a) Geben Sie eine kontextfreie Grammatik G mit L(G) = L4 an. ¨ b) Uberpr¨ ufen Sie, welche der folgenden W¨orter in L4 sind. Geben Sie im positiven Fall eine Ableitung in G an. b1) ε b2) baa b3) aaabaa c) Zeigen oder widerlegen Sie: L4 ist regul¨ar. L¨osung: a) Betrachte G = hVN , VT , P, Si mit: – VN = {S, T } – VT = {a, b} – P wie folgt: 1. 2. 3. 4. 5. 6. 7.

S S S T T T T

→ aa → aSa → aT a → aT →a → bT →b

G ist kontextfrei und erzeugt L4 b) b1)  ∈ / L4 b2) baa ∈ / L4 b3) S ⇒ (2)aSa ⇒ (2)aaSaa ⇒ (3)aaT aa ⇒ (4)aaaT aa ⇒ (7)aaabaa Also: aaabaa ∈ L4 c) Behauptung: L4 ist regul¨ar, denn L4 = {awa | w ∈ Σ∗ } (alle weiteren a an Anfang und Ende k¨onnen auch in w verschoben werden. Damit gilt: L4 = L(a(a + b)∗ a), also regul¨ar.

Seite 9 von 23

Aufgabe 4 (Fortsetzung)

Seite 10 von 23

Aufgabe 5 (1+1+1+6P) Sei Σ = {a, b}. Sei L5 = {ak bwbak |w ∈ Σ∗ , k ∈ N}. ¨ a) Uberpr¨ ufen Sie, welche der folgenden W¨orter in L5 sind. a1) bb a2) aababa a3) aabbbaa b) Zeigen oder widerlegen Sie: L5 ist regul¨ar. L¨osung: a) a1) bb ∈ L5 a2) aababa ∈ / L5 a3) aabbbaa ∈ L5 b) Behauptung: L5 ist nicht regul¨ar. Beweis per Pumping-Lemma. Annahme: L5 sei regul¨ar. Dann gilt: ∃n ∈ N mit der Eigenschaft, dass jedes Wort s ∈ L mit |s| > n als uvw dargestellt werden kann, so dass v 6= , |uv| ≤ n, und ∀h ∈ N : uv h w ∈ L5 . Betrachte das Wort an bban ∈ L5 . Dann gilt: u = ai , v = aj , w = an−(i+j) ban und j > 0. Per Pumping Lemma muss dann auch uv 0 w = an−j bban ∈ L5 sein. Da j 6= 0 ist das aber nicht der Fall. Also ist die Annahme falsch und L5 nicht regul¨ar.

Seite 11 von 23

Aufgabe 6 (2+4P) Sei Σ = {a, b}. Betrachten Sie den Automaten A6 in Abbildung 3. b

b a

q0

b

a

q2 a

q1

Abbildung 3: Automat A6 a) Stellen Sie ein Gleichungssystem auf, das die an den verschiedenen Zust¨anden akzeptierten Sprachen beschreibt. b) L¨osen Sie dieses Gleichungssystem und geben Sie so einen regul¨aren Ausdruck an, der die von A6 akzeptierte Sprache beschreibt. L¨osung: 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 b∗ a(b∗ a(b∗ (aL0 + ))) b∗ a(b∗ a(b∗ + b∗ aL0 )) b∗ a(b∗ ab∗ + b∗ ab∗ aL0 ) b∗ ab∗ ab∗ + b∗ ab∗ ab∗ aL0 (b∗ ab∗ ab∗ a)∗ b∗ ab∗ ab∗

(Arden) (EinsetzenL1 ) (U mf ormen) (Ausmultiplizieren) (Ausmultiplizieren) (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 → aT U, T U → Sb, T U → 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 a¨ quivalente Grammatik mit dem maximal m¨oglichen Typ an. L¨osung: a) Die Grammatik ist Typ 0. Sie ist nicht kontextsensitiv, da z.B. T U → Sb nicht kontext-erhaltend ist, und nicht kontextfrei, da z.B. T U → Sb nicht nur ein NTS auf der linken Regelseite hat. b) L(G7 ) = {an bn | n ∈ N+ } c) Typ 2 (kontextfrei) d) Betrachte G = hVN , VT , P, Si 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 = {an bm cp | 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 f¨ur die folgenden W¨orter an: b1) abbbcc b2) bbcc L¨osung: 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 = hVN , VT , P, Si 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 Grammatik G9 mit dem in der Vorlesung gezeigten Verfahren in ChomskyNormalform. G9 P

=

({S, A, B, C, D, E}, {b, c, d}, P, S)

= {S → AC | CCD A → AB B→S|b C→D|c D → Sd | d E → SB | d}

L¨osung: • 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 | CCD A → AB B → AC | CCD | b C → Sd | d | c D → Sd | d E → SB | d}

• Schritt 2: Entferne nicht-terminierende Symbole: – Initial: B, C, D, E – Iteration: S – Nicht terminierend: A Ergebnis: P

= {S → CCD B → CCD | b C → Sd | d | c D → Sd | d E → 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 | c D → Sd | d

• Schritt 4: Ersetze D durch Xd : P

= {S → CCD C → SXd | d | c D → SXd | d Xd → d

• Aufl¨osen 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 | c D → SXd | d Xd → d

∗ G09 = hVN , VT , P, Si

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|b B→b|a C → CS | c D → BC}

¨ a) Uberpr¨ ufen Sie mit Hilfe des CYK-Algorithmus, welche der folgenden W¨orter von G10 erzeugt werden: a1) w1 = bbcabc a2) w2 = acbc b) Beschreiben Sie die von G10 erzeugte Sprache L(G10 ) formal. Dies k¨onnen Sie durch Angabe als Menge oder, falls L(G10 ) regul¨ar ist, durch Angabe eines regul¨aren Ausdrucks tun.

1

1

2

3

4

5

6

A,B

-

S

-

-

S

A,B

D

-

-

D

C

-

-

C

A,B

-

S

A,B

D

2 ¨ Teil a1) L¨osung fur

3 4 5 6 w=

C b

b

c

a

Ist w1 ∈ L(G10 )? Ja

1 ¨ Teil a2) L¨osung fur

1

2

3

4

A,B

D

-

-

C

-

-

A,B

D

2 3 4 w=

Ist w2 ∈ L(G10 )? Nein

C a

c

b

c

b

c

Seite 19 von 23

Aufgabe 10 (Fortsetzung)

Seite 20 von 23

Aufgabe 11 (2+2+4P) Gegeben sei der Kellerautomat A11 = ({q0 , qe }, {a, b}, {Z0 , A, B}, δ, q0 , Z0 ), wobei δ in der folgenden Tabelle angegeben ist. q0 q0 q0 q0 q0 q0 q0 q0 qe qe qe

a Z0 a A a B b Z0 b A b B ε A ε B ε A ε B ε Z0

AZ0 AA ε BZ0 ε BB ε ε ε ε ε

q0 q0 q0 q0 q0 q0 qe qe qe qe qe

a) Geben Sie f¨ur die folgenden W¨orter – 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 Wort gelesen wird, an. a1) w1 = aaabbb a2) w2 = aababbbb b) Beschreiben Sie formal die von A11 akzeptierte Sprache als Menge. L¨osung: q0 , q0 , q0 , a) a1) q0 , q0 , q0 , q0 ,

aaabbb, aabbb, abbb, bbb, bb, b, ε,

Z0 AZ0 AAZ0 AAAZ0 AAZ0 AZ0 Z0

¨ Das Wort wird nicht akzeptiert, da der Keller nicht leer ist und kein Ubergang m¨oglich ist. q0 , aababbbb, Z0 q0 , ababbbb, AZ0 q0 , babbbb, AAZ0 q0 , abbbb, AZ0 q0 , bbbb, AAZ0 q , bbb, AZ0 a2) 0 q0 , bb, Z0 q0 , b, BZ0 q0 , ε, BBZ0 qe , ε, BZ0 qe , ε, Z0 qe , ε, ε Das Wort wird akzeptiert, da die Eingabe komplett gelesen ist und der Keller leer ist. b) L(A1 1) = {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% k¨onnen ohne diese Aufgabe erreicht werden! a) Folgern Sie aus der Unentscheidbarkeit des Leerheitsproblems f¨ur kontextsensitive Grammatiken, ¨ dass auch das Aquivalenzproblem f¨ur kontextsensitive Grammatiken unentscheidbar ist. b) Begr¨unden Sie, warum es nicht m¨oglich ist, mit Hilfe des Pumping-Lemmas die Nichtregularit¨at von endlichen Sprachen zu zeigen. L¨osung: a) Eine kontext-sensitive Grammatik G mit L(G) = {} ist einfach anzugeben (z.B. durch eine leere ¨ Menge von Produktionen). Wenn das Aquivalenzproblem entscheidbar w¨are, dann k¨onnte man das ¨ Lehrheitsproblem trivial auf die Aquivalenz zu G zur¨uckf¨uhren und so entscheiden. Da das Lehr¨ heitsproblem aber unentscheidbar ist, muss auch das Aquivalenzproblem unentscheidbar sein. b) Alle endlichen Sprachen sind regul¨ar. Dies kann z.B. trivial durch einen regul¨aren Ausdruck gezeigt werden, der alle Worte der Sprache (und nur diese) als Alternative enth¨alt, oder alternativ durch ¨ einen NFA, der mit einem -Ubergang vom Startzustand zu einer linearen Zustandskette pro Wort u¨ bergeht. Technisch gilt das Pumping Lemma mit einem n, dass gr¨oßer als die L¨ange des l¨angsten Wortes der Sprache ist. Es existiert dann aber kein Wort meht, das aufgepumpt werden kann.

Seite 23 von 23

Ende