Formale Sprachen, Automaten, Compiler Berufsakademie Lörrach, TIT06 - 3. Semester Wiederholungsklausur, 6. Feb 2007 Aufgabe 1 2 3 4 5 6 7 8 Max. Punkte 6 8 17 22 22 18 6 20 9 Σ Note 22 141 Alle Bezeichnungen bitte gemäß der in der Vorlesung vereinbarten Schreibund Sprechweise verwenden. Aufgabe 1 [ 2 + 2 +2 = 6 ] 1.a) Geben Sie ein Beispiel für eine Sprache über dem Alphabet Σ = { if, while, for, repeat }. 1.b) Was bedeutet L = { 1, 2, 3 }? 1.c) Bestimmen Sie die zum L aus 1.b) gehörende Menge L*. Aufgabe 2 [ 2 + 3 + 3 = 8 Punkte ] L1 = { Mama, Papa, Oma, Opa } und L2 = { Tochter, Sohn, Mama, Papa } zwei Sprachen. Seien 2.a) Zu welcher Sprachklasse gehören L1 und L2. 2.b) Bestimmen Sie L1 ∩ L2. Zu welcher Sprachklasse gehört das Ergebnis? 2.c) Bestimmen Sie L1 ∪ L2. Zu welcher Sprachklasse gehört das Ergebnis? BA Lörrach: Formale Sprachen, Automaten, Compiler, TIT06 – 3. Sem, Dipl.-Inf. Robert Grübel Seite 1 Aufgabe 3 [ 5 + 5 + 3 + 2 + 2 = 17 Punkte ] In der Programmiersprache OBERON werden, nach der folgenden Erklärung, Zahlen sind ganze oder reelle Zahlen ohne Vorzeichen. Ganze Zahlen sind Folgen von Ziffern, auf die ein Buchstabe folgen kann. Der Typ ist ... Wenn kein Buchstabe als Suffix folgt, dann handelt es sich um eine Dezimalzahl, falls der Buchstabe H folgt, wird eine hexadezimale Zahl dargestellt. Zahlen so definiert: Number = Integer | Real. Integer = digit {digit} | digit {hexdigit} "H" . Real = digit {digit} "." {digit} [ScaleFactor]. ScaleFactor = ("E" | "D") ["+" | "-"] digit {digit}. hexdigit = digit | "A" | "B" | "C" | "D" | "E" | "F". digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9". Die Regeln sind in der sog. erweiterten Backus-Naur geschrieben, es gilt: Der senkrechte Strich | seht für Alternativen, Klammen ( ) stehen für das einmalige Auftreten, eckige Klammern [ ] stehen für die Optionalität des eingeschlossenen Begriffes, geschweifte Klammern { } stehen für seine (evtl. 0-malige) Wiederholung. 3.a) Bringen Sie die Definition von Integer in die in der Vorlesung vereinbarten Schreibweise für Produktionsregeln (wenn Sie dabei Ersetzungen vornehmen, z.B. Integer anstatt S als Startsymbol verwenden usw., geben Sie bitte die Entsprechungen an). 3.b) Bestimmen Sie zu den Produktionsregeln aus 3.a) die Mengen und das Startsymbol S, so daß Sie insgesamt eine vollständige Grammatikdefinition in der Form G = (N, Σ, P, S) erhalten. 3.c) Notieren Sie gemäß der in 3.b) gefundenen Grammatik Ableitungsschritte für das Wort 4A33H. 3.d) Ist 123.45 ableitbar? (Ja/ Nein.) 3.e) Ist 2FA ableitbar? (Ja/Nein.) Σ und N G die BA Lörrach: Formale Sprachen, Automaten, Compiler, TIT06 – 3. Sem, Dipl.-Inf. Robert Grübel Seite 2 Aufgabe 4 [ 4 + 4 + 4 + 2 + 4 + 4 = 22 Punkte ] Gegeben seien der reguläre Ausdruck und der folgende endliche Automat r1 = aa* M2 ,ε 4.a) Zeichnen Sie einen endlichen Automaten M1 mit L(M1) (evtl. Platz lassen für die Aufgaben 4.c), 4.e) und 4.f)!). 4.b) Bestimmen Sie einen regulären Ausdruck = L(r1) r2 mit L(r2) = L(M2). 4.c) Fügen Sie die beiden Automaten M1 und M2 so zusammen, daß ein Automat M mit L(M) = L(r1 + r2) (oder L(M) = L(M1) ∪ L(M2)) entsteht. 4.d) Welche "Schaltung" haben Sie in 4.c) verwendet? 4.e) Zeichnen Sie einen zum Automaten M äquivalenten, ε-freien Automaten M'. Begründen Sie, wie Sie zu Ihrem Ergebnis kommen. 4.f) Erweitern Sie den Automaten äquivalenten Automaten M''. M' zu einem vollständigen, zu M' BA Lörrach: Formale Sprachen, Automaten, Compiler, TIT06 – 3. Sem, Dipl.-Inf. Robert Grübel Seite 3 Aufgabe 5 [ 4 + 6 + 3 + 3 + 6 = 22 Punkte ] Sei G = ( N, Σ, P, S ) die Grammatik mit N = { S, A, B }, Σ = { a, b, c } und P = { S → aA | aBc, A → ε | aA, B → ε | bB 5.a) Zu welcher Grammatik-Klasse gehört G? Bitte mit Begründung. 5.b) Konstruieren Sie – mit dem Verfahren aus der Vorlesung - eine ε- freie, zu G äquivalente Grammatik G'. 5.c) Gehört das Wort abbbc zur von G erzeugten Sprache L(G)? 5.d) Gehört das Wort abb zur von G erzeugten Sprache L(G)? 5.e) Zu welcher Sprachklasse gehört L(G)? Aufgabe 6 [ 4 + 6 + 4 + 4 = 18 Punkte ] Sei G = ( N, Σ, P, S ) die Grammatik mit N = { S, A, X }, Σ = { r, a, u, x, k } und P = { S → rAuX, A → a | akA | S, X → xX | x 6.a) Führen Sie für das Wort Sie den Ableitungsbaum. rakakrauxux eine Linksableitung durch, zeichnen 6.b) Konstruieren Sie zur Grammatik mit L(M) = L(G). G einen Kellerautomaten M 6.c) Führen Sie eine Rechnung des Kellerautomaten für das Wort Wird das Wort akzeptiert? raux durch. 6.d) Führen Sie eine Rechnung des Kellerautomaten für das Wort BA Lörrach: Formale Sprachen, Automaten, Compiler, TIT06 – 3. Sem, Dipl.-Inf. Robert Grübel Seite 4 rakakrauxux durch. Wird das Wort akzeptiert? BA Lörrach: Formale Sprachen, Automaten, Compiler, TIT06 – 3. Sem, Dipl.-Inf. Robert Grübel Seite 5 Aufgabe 7 [ 6 = 6 Punkte ] Überprüfen Sie, ob die Grammatik hat. Begründen Sie Ihre Antwort. G aus Aufgabe 6 die LL(1)-Eigenschaft Aufgabe 8 [ 6 + 6 + 4 + 4 = 20 Punkte ] Gegeben ist die Grammatik G = ( N, Σ, P, S ) mit N = { S, A, B, C }, Σ = { a, b, c, d, k } und P = { S → aAbC | d, A → SB, B → kSB | ε, C→c und der folgenden - unvollständigen – LL(1)-Parsing-Tabelle: b c S a S → aAbC fehler fehler A A → SB fehler fehler B fehler B→ε fehler C fehler d d fehler k $ fehler fehler fehler fehler B → kSB fehler fehler fehler Hinweis: In den leeren Feldern fehlen sowohl Produktionsregeln als auch Fehler-Fälle. 8.a) Berechnen Sie die nötigen First- und Follow-Mengen, um die ParsingTabelle vervollständigen zu können. 8.b) Vervollständigen Sie die Parsing-Tabelle. 8.c) Führen Sie das tabellengesteuerte Parsen des Wortes Wird das Wort akzeptiert? adkadbcbc durch. 8.d) Führen Sie das tabellengesteuerte Parsen des Wortes das Wort akzeptiert? adkbc durch. Wird BA Lörrach: Formale Sprachen, Automaten, Compiler, TIT06 – 3. Sem, Dipl.-Inf. Robert Grübel Seite 6 Aufgabe 9 [ 2 + 2 + 2 + 2 + 4 + 4 + 6 = 22 Punkte ] Beantworten Sie die folgenden Aussagen mit Ja oder Nein. 9.a) Es gibt reguläre Grammatiken zu denen kein endlicher Automat existiert, der deren Sprache akzeptiert. 9.b) Kontextfreie Sprachen werden von nichtdeterministischen endlichen Automaten akzeptiert. 9.c) Die syntaktische Analyse eines Computer-Programmes erfolgt durch einen Kellerautomaten. 9.d) Zu jedem endlichen Automaten existiert ein äquivalenter vollständiger, deterministischer endlicher Automat. Beantworten Sie die folgenden Aussagen mit Begründung. 9.e) Reguläre Sprachen werden nicht von Kellerautomaten akzeptiert. 9.f) Die von endlichen Automaten akzeptierten Sprachen können durch kontextfreie Grammatiken erzeugt werden. 9.g) Kellerautomaten und endliche Automaten sind äquivalent. BA Lörrach: Formale Sprachen, Automaten, Compiler, TIT06 – 3. Sem, Dipl.-Inf. Robert Grübel Seite 7