Programmiersprachen und ¨Ubersetzer – ¨Ubung 1

Werbung
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
Herunterladen