Automaten und formale Sprachen zu den Übungsblättern Übungsblatt Aufgabe. (Sipser, exercise.3) M = ({q, q2, q3, q4, q5}, {u, d}, δ, q3, {q3}) δ: u d q q q 2 q 2 q q 3 q 3 q 2 q 4 q 4 q 3 q 5 q 5 q 4 q 5 u d d d d d q q 2 q 3 q 4 q 5 u u u u Aufgabe.2 (Sipser, exercise.6, part a-f, part k-n) a) {w w beginnt mit und endet mit }
, b) {w w enthält mindestens 3 Einsen }, c) {w w enthält den Teilstring }, s d) {w w ist mindestens 3 Zeichen lang und das 3. Zeichen ist },,, AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET, e) {w w beginnt mit und hat ungerade Länge oder beginnt mit und hat gerade Länge} WS 6/7 Seite 2
,,,, oder,, f) {w w enthält den Teilstring nicht}, g) {ε, }, AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET h) {w w enthält eine gerade Anzahl Nullen oder genau 2 Einsen } WS 6/7, Seite 3
i) Die leere Menge, j) Alle Wörter außer dem leeren Wort,, Aufgabe.3 Es sei Σ = {, } und A, B seien Sprachen über dem Alphabet Σ mit A = {w w endet mit } und B = {w w beginnt mit }. Beschreiben Sie, welche Sprachen sich mit den regulären Operationen A B, A B, A und B ergeben. AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET Lösung A B : A B : A : B : WS 6/7 Seite 4
Übungsblatt 2 Aufgabe 2. In der Vorlesung wurden die Beweisideen vorgestellt, mit denen man zeigt, daß die Klasse der regulären Sprachen abgeschlossen bezüglich der Operationen Vereinigung, Konkatenation und Stern ist. Lesen Sie in dem Buch von Sipser nach, wie man die Konstruktion der betreffenden nichtdeterministischen endlichen Automaten formal aufschreibt. Aufgabe 2.2 (Sipser, exercise,.7, part a-d, part g) Geben Sie zu jeder der folgenden regulären Sprachen über dem Alphabet {, } das Zustandsdiagramm eines (Nichtdeterministischen) Endlichen Akzeptors mit der jeweils angegebenen Anzahl von Zuständen an: a) {w w endet mit }, 3 Zustände, b) {w w enthält den Teilstring }, 5 Zustände,, c) {w w enthält eine gerade Anzahl Nullen oder genau2 Einsen }, 6 Zustände ε AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET WS 6/7 ε Seite 5
d) {}, 2 Zustände e) {ε}, Zustand Aufgabe 2.3 (Sipser, exercise.6) In der Vorlesung wurde hergeleitet, daß es zu jedem NFA einen äquivalenten DFA gibt. Verwenden Sie die im Beweis benutzte Methode, um die folgenden beiden nichtdeterministischen endlichen Automaten in äquivalente deterministische endliche Automaten zu konvertieren. Zeichnen Sie zunächst die Zustandsdiagramme. a) Es sei N = ({, 2}, {a, b}, δ,, {}), wobei δ durch die folgende Tabelle gegeben ist. a b ε {, 2} {2} φ 2 φ {} φ a {} a {, 2} b a,b a,b 2 b NFA in DFA P ({,2} =4 a,b b φ a {2} b) Es sei N = ({, 2, 3}, {a, b}, δ,, {2}), und δ ist durch die folgende Tabelle gegeben a b ε {3} φ {2} 2 {} φ φ 3 {2} {2, 3} φ AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET WS 6/7 Seite 6
a ε a 2 a a,b 3 {, 2} a {, 2, 3} b a b φ {2, 3} b NFA in DFA P ({,2} =4 a,b b Übungsblatt 3 Aufgabe 3. (Sipser, exercise.9, part a) In der Vorlesung wurde gezeigt, daß die Klasse der regulären Sprachen unter der Operation der Konkatenation abgeschlossen ist. Verwenden Sie die für die Herleitung benutzte Konstruktion, um das Zustandsdiagramm eines nichtdeterministischen endlichen Automaten anzugeben, der die Konkatenation der Sprachen a) {w die Länge von w ist höchstens 5} und b) {w jede ungerade Position von w ist eine } erkennt. Das Alphabet ist jeweils {, }. Aufgabe 3.2 (Sipser, exercise.7, part e, h) Give state diagrams of NFAs with the specied number of states recognizing each of the following languages. In all parts the alphabet is {, }. a) The language + with three states. b) The language with one state. Aufgabe 3.3 (Sipser, exercise.2) AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET Give regular expressions generating the following languages. In all parts the alphabet is {, }. a) {w w begins with a and ends with a} b) {w w contains at least three s} c) {w w contains the substring, i.e., w = xy for some x and y} d) {w w has length at least 3 and its third symbol is a} e) {w w s with and has odd length, or s with and has even length} WS 6/7 Seite 7
f) {w w doesnt contain the substring } g) {w the length of w is at most 5} h) {w w is any string except and } i) {w every odd position of w is a } j) {w w contains at least two s and at most one } k) {ε, } l) {w w contains an even number of s, or contains exactly two s} m) The empty set. n) All strings except the empty string. Übungsblatt 4 Aufgabe 4. (Sipser, exercise.9) For each of the following languages, give two strings that are members and two strings that are not members a total of four strings for each part. Assume the alphabet Σ = {a, b}. in all parts. a) a b b) a(ba) b c) a b d) (aaa) e) Σ aσ bσ aσ f) aba bab g) (ε a)b h) (a ba bb)σ Aufgabe 4.2 (Sipser, exercise.8, part a, c) AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET Verwenden Sie das in der Vorlesung beschriebene Verfahren, um die folgenden regulären Ausdrücke in nichtdeterministische endliche Automaten zu konvertieren. a) ( ) ( ) b) φ WS 6/7 Seite 8
Übungsblatt 5 Aufgabe 5. (Sipser, exercise.2) Verwenden Sie das in der Vorlesung beschriebene Verfahren, um die folgenden endlichen Automaten in reguläre Ausdrücke zu konvertieren. Zeichnen Sie zunächst die Zustandsdiagramme der Automaten. a) Es sei M = (, 2, a, b, δ,, 2), wobei δ durch die folgende Tabelle gegeben ist. a b 2 2 2 b) Es sei M = (, 2, 3, a, b, δ,,, 3), und δ ist durch die folgende Tabelle gegeben. a b 2 2 2 2 3 3 2 Aufgabe 5.2 (Sipser, exercise.29) Use the pumping lemma to show that the following languages are not regular. a) A = { n n 2 n n } b) A 2 = {www w {a, b} } c) A 3 = {a 2n n n} (Here, a 2n means a string of 2 n as.) Übungsblatt 6 Aufgabe 6. Lesen Sie die einführenden Abschnitte der Manuale zu grep, awk und flex. Experimentieren Sie am Rechner mit den Programmen, zum Beispiel durch Nachvollziehen und Abändern einiger Beispiele aus den Manualen. Berücksichtigen Sie besonders die Verwendung von regulären Ausdrücken. AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET Aufgabe 6.2 Ein Beispiel im flex-manual ist der scanner for a toy Pascal-like language. Erzeugen Sie zunächst die zugehörige Datei lex.yy.c und daraus dann ein ausführbares Programm. Experimentieren Sie interaktiv mit dem Scanner. Schreiben Sie ein kleines Programmbruchstück, das aus Schlüsselwörtern, Bezeichnern, Zahlen u.s.w. besteht, dabei sollten auch Konstrukte eingebaut werden, die im Scanner nicht deniert sind, z. B. Zuweisungen oder Klammern. Rufen Sie den Scanner auf, und geben Sie ihm das kleine Programm als Eingabe. Machen Sie sich anhand der Scanner-Ausgabe die lexikalische Analyse des eingegebenen WS 6/7 Seite 9
Quellcodes klar. Speziell sollte deutlich werden, daß im allgemeinen ein Token aus einem Tokentyp (z. B. Integer) und einem sog. semantischen Wert (z.b. 47) besteht. Aufgabe 6.3 (Sipser, exercise 2.) Es sei G = (V, Σ, R, E) eine kontextfreie Grammatik mit V = {E, T, F }, Σ = {a, +,, (, )} und den folgenden Regeln. E E + T T T T F F F (E) a Geben Sie Parsebäume und Ableitungen für die folgenden Strings an. a) a b) a + a c) a + a + a d) ((a)) Aufgabe 6.4 (Sipser, exercise 2.3, Teil (o) leicht modiziert) Answer each part for the following context-free grammar G. R XRX S S at b bt a T XT X Xε X a b a) What are the variables of G? b) What are the terminals of G? c) Which is the variable of G? d) Give three strings in L(G). e) Give three strings not in L(G). AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET f) True or False: T = aba. g) True or False: T = aba. h) True or False: T = T. i) True or False: T = T. j) True or False: XXX = aba. k) True or False: X = aba. WS 6/7 Seite
l) True or False: T = XX. m) True or False: T = XXX. n) True or False: S =. o) Give a description in German of L(G). Übungsblatt 7 Aufgabe 7. (Sipser, exercise 2.4, part ac) Give context-free grammars that generate the following languages. In all parts the alphabet Σ is {, }. a) {w w contains at least three s} b) {w w s and ends with the same symbol} c) {w the length of w is odd} Aufgabe 7.2 (Sipser, exercise 2.4, part ac) Die kontextfreie Grammatik A BAB B ε B ε soll mit der in der Vorlesung besprochenen Methode in eine äquivalente kontextfreie Grammatik in Chomsky-Normalform umgewandelt werden. Aufgabe 7.3 (Sipser, exercise 2.7, modiziert) Geben Sie informelle Beschreibungen und Zustandsdiagramme von Pushdown-Automaten für die folgenden Sprachen an. a) Die Menge aller Strings uber dem Alphabet {a, b} mit mehr a s als b s. b) {w#x w R ist ein Substring von x, wobei w, x {, } } AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET WS 6/7 Seite
Übungsblatt 8 Aufgabe 8. (Sipser, exercise 2.4, part df) Give context-free grammars that generate the following languages. In all parts the alphabet Σ is {, }. a) {w the length of w is odd and its middle symbol is a } b) {w w = w R, that is, w is a palindrome} c) The empty set Aufgabe 8.2 (Sipser, exercise 2.5) Geben Sie informelle Beschreibungen und Zustandsdiagramme von Pushdown-Automaten für die Sprachen aus der vorherigen Aufgabe an. Aufgabe 8.3 (Sipser, exercise 2.2) Konvertieren Sie mit der in der Vorlesung vorgestellten Methode die kontextfreie Grammatik G = (V, Σ, R, E) mit V = {E, T, F }, Σ = {a, +,, (, )} und den Regeln E E + T T T T F F F (E) a in einen äuivalenten Pushdown-Automaten. Übungsblatt 9 Aufgabe 9. (Sipser, problem 2.3, parts b and c) Use the pumping lemma to show that the following languages are not context free. a) { n # 2n # 3n n } b) {w#t w is a substring of t, where w, t {a, b} } AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET WS 6/7 Seite 2
Übungsblatt Aufgabe. (Sipser, exercise 2.2) Es soll gezeigt werden, daß der Durchschnitt zweier kontextfreier Sprachen nicht immer kontextfrei ist, und daß auch das Komplement einer kontextfreien Sprache nicht kontextfrei sein muß. a) Verwenden Sie die Sprache A = {a m b n c n m, n } und die Sprache B = {a n b n c m m, n } zusammen mit dem in der Vorlesung besprochenen ersten Beispiel zum Pumping- Lemma für kontextfreie Sprachen, um zu zeigen, daß die Klasse der kontextfreien Sprachen nicht abgeschlossen unter dem Durchschnitt ist. b) Zeigen Sie mit dem Ergebniss von Teil a) und einer Regel von De Morgan (siehe Formelsammlungen), daß die Klasse der kontextfreien Sprachen nicht abgeschlossen unter dem Komplement ist. Aufgabe.2 (Sipser, problem 2.26) Show that, if G is a CFG in Chomsky normal form, then for any string w L(G) of length n, exactly 2n steps are required for any derivation of w. Übungsblatt Aufgabe. Übungsblatt 2 Aufgabe 2. AFS_Loesungen.tex,v,.,January 2, 27 at 4:45:2 CET WS 6/7 Seite 3