Theoretische Informatik I Prof Dr Peter Brezany Institut
Theoretische Informatik I Prof. -Dr. Peter Brezany Institut für Softwarewissenschaft Universität Wien, Liechtensteinstraße 22 1090 Wien Tel. : 01/4277 38825 E-mail : brezany@par. univie. ac. at Sprechstunde: Dienstag, 11. 30 -12. 30 P. Brezany Institut für Softwarewissenschaft – Universität Wien
Inhalt • Einleitung • Kontextfreie Sprachen und Grammatiken • Reguläre Sprachen und endliche Automaten • Die Chomsky Hierarchie: Sprachen, Grammatiken, Automaten • Semantik und Verifikation • Berechenbarkeit und Entscheidbarkeit • Turingmaschinen • Prädikatenlogik P. Brezany Institut für Softwarewissenschaft – Universität Wien 2
Literatur • Hopcroft, Ullman: Formal Languages and Their Relation to Automata; Addison-Wesley • Gries: The Science of Programming; Springer, 1991 [Kapitel 5] • Brookshear: Theory of Computation -- Formal Languages, • Automata, and Complexity; Benjamin/Cummings, 1989 • Harel: Algorithmics. The Spirit of Computing. Addison-Wesley, 1987 P. Brezany Institut für Softwarewissenschaft – Universität Wien 3
Kapitel 1: Einleitung Aufgaben der Theoretischen Informatik • Sind alle Probleme algorithmisch lösbar (d. h. , durch ein endliches Rechenverfahren beschreibbar) oder gibt es Probleme, die algorithmisch unlösbar sind? • Wenn ein Problem algorithmisch lösbar ist, wie groß ist dann der Aufwand zur Berechnung der Lösung? • Wie läßt sich die Syntax (Form) einer Programmiersprache präzise beschreiben? • Wie läßt sich die Semantik (Bedeutung) einer Programmiersprache beschreiben? • Wie läßt sich die Korrektheit eines Programms nachweisen? • Welche Funktionen lassen sich in Sprachen wie Algol, Fortran, Pascal, C, C++, ADA, Java etc. ausdrücken? Ist irgendeine dieser Sprachen „mächtiger“ als eine andere? P. Brezany Institut für Softwarewissenschaft – Universität Wien 4
Kapitel 2: Kontextfreie Grammatiken und Sprachen Definition: Ein Alphabet ist eine nichtleere Menge von Symbolen (Zeichen). ƀ Beispiele: P. Brezany 0, 1 Binärzeichen 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Dezimalziffern a, b, c, . . . , z Kleinbuchstaben a, . . . , z, 0, . . . , 9 Alphanumerische Zeichen a, . . . , 9, , . . . Java Unicode (eine Zechentabelle, die 65536 Einträge umfassen kann; jedem Zeichen ist also eine Zahl zwischen 0 und 65535 zugeordnet 5 Institut für Softwarewissenschaft – Universität Wien
Definition: Sei ein Alphabet. Die Menge der Zeichenketten (``Strings'', ``Worte'') über läßt sich rekursiv durch folgende Regel spezifizieren: 1. ist eine Zeichenkette über . heißt die leere Zeichenkette (Leerwort). 2. Ist x eine Zeichenkette über dem Alphabet auch xa eine Zeichenkette über . und a , dann ist 3. Jede Zeichenkette über wird ausschließlich durch Anwendung der Regeln 1 und 2 gebildet. ƀ P. Brezany Institut für Softwarewissenschaft – Universität Wien
Beispiele für Zeichenketten Bemerkung: Nicht alle dieser Zeichenketten müssen eine sinnvolle Semantik (Bedeutung) haben: siehe die beiden untersten Beispiele. • Zeichenketten über dem Binäralphabet {0, 1}: , 0, 1, 00, 01, 10, 11, 000, 001, . . . • Zeichenketten über dem Alphabet der Kleinbuchstaben: haus, baum, uni, inu, muab, . . . • Zeichenketten über dem unären Alphabet {I}: , I, III, IIII, . . . • Zeichenketten über dem Alphabet {a, . . . , z, 0, . . . 9, : , =, +, *, (, ), . . . } a: =b*(c+*(d-e)*3. 141592), abc+)))(x • Zeichenketten über dem Alphabet der römischen Ziffern {M, D, C, L, X, V, I}: MCMXCV, MM, IIICCCMMM P. Brezany Institut für Softwarewissenschaft – Universität Wien
Zeichenketten: Notation Sei ein beliebiges Alphabet. • * ist die Menge aller Worte in . • Für ein beliebiges Zeichen a definiert a 0 : = und an : = a. . . a (a n-fach wiederholt) für n > 1. • Für ein beliebiges Wort x * wird die Länge von x durch |x| dargestellt. Es gilt: |x| = 0, falls x = n, falls x = a 1 a 2. . . an, n > 0 P. Brezany Institut für Softwarewissenschaft – Universität Wien 8
Konkatenation von Zeichenketten Definition: Sei ein Alphabet und seien x, y Zeichenketten über , wobei x = a 1 a 2. . . am, y = b 1 b 2. . . bn, m, n 0, ai, bi . Die Konkatenation (Verkettung) von x und y ist die Zeichenkette xy = a 1 a 2. . . am b 1 b 2. . . bn. ƀ Spezialfall: Für jede Zeichenkette x gilt: x = x Definition: Sei x * mit x = a 1 a 2. . . am und m > 0. • Jedes Wort x´ = a 1. . . ak (0 k m) ist ein Präfix von x. • Jedes Wort x´´ mit x = x´x´´ ist ein Suffix von x. ƀ Ist x´ x bzw. x´´ x, so sprechen wir von einem echten Präfix bzw. Suffix von x. P. Brezany Institut für Softwarewissenschaft – Universität Wien 9
Praktisches Beispiel: Zeichenketten in Java Z. B. Zeichenkette (Literal): “Die Sonne“ Verkettungsoperator: + Beispiel: “Die Sonne“ + “scheint. “ P. Brezany Institut für Softwarewissenschaft – Universität Wien 10
Für die Konkatenation von Zeichenketten gilt das Assoziativgesetzt: x, y, z *: (xy)z = x(yz) Definition: Sei x, y, z *. Dann ist y ein Teilwort (Substring) von xyz. Falls y , spricht man von einem echten Teilwort. P. Brezany Institut für Softwarewissenschaft – Universität Wien ƀ
Zeichenketten : Zusätzliche Beispiel 1 Gegeben: = {0, 1}. (a) Berechnen Sie 0, 1, 2, 3, 2 3, 3 i=0 i. (b) Sei W = {w|w 2 4}. Berechnen Sie SUMw W |w|. (c) Erklären Sie n und *. Beispiel 2 Sei w = abba. (a) Geben Sie die Menge aller Teilwörter T von w, deren Länge höchstens 2 beträgt (also T = {t|TW(t, w) |t| 2}). (b) Welche dieser Teilwörter sind Präfixe, welche Suffixe von w? (c) Berechnen Sie: |{(x, y, z)|xyz = w |x| 2 |y| 1}| ( | und | bezeichnen die Zahl von gefundenen (x, y, z) ) P. Brezany Institut für Softwarewissenschaft – Universität Wien 12
Sprache Definition: Sei ein Alphabet. Eine Sprache über ist eine Teilmenge L *. ƀ Zum Beispiel sind bei geeigneter Wahl des Alphabets , die Sprachen C, Pascal, Fortran, Java, Deutsch und Chinesisch Sprachen. Definition: Eine Programmiersprache ist ein Paar (L, f ), wobei L die Syntax und f die Semantik beschreibt. ƀ * Die Syntax (Form) einer Programmiersprache wird in der Regel durch eine kontextfreie Grammatik beschrieben. Die Semantik einer Programmiersprache ordnet den Elementen (Programmen) eine Bedeutung zu. Dies kann auf viele verschiedene Arten durchgeführt werden (zum Beispiel axiomatische Semantik, wp-Semantik, denotationelle Semantik). P. Brezany Institut für Softwarewissenschaft – Universität Wien 13
Kontextfrei Grammatiken Definition: Eine kontextfreie Grammatik (KFG) ist ein Quadrupel G = ( N, wobei , P, S ) • N: Menge der Nichtterminalsymbole, endlich • : Menge der Terminalsymbole, endlich • P N x ( N )*: • S N: Startsymbol Mengen) Wir verlangen N Menge der Regeln, endlich ( und : Vereinigung und Durchschnitt von 2 ( Teilmenge) = und führen zusätzlich ein: • : = N : Gesamtalphabet ƀ P. Brezany (x - Kreuzproduktoperation) Institut für Softwarewissenschaft – Universität Wien 14
KFG: Notationelle Konventionen • • A, B, C, S, . . . bezeichnen Nichtterminalsymbole ( N) a, b, c, . . . bezeichnen Terminalsymbole ( ) x, y, z, . . . bezeichnen Terminalworte ( *) , , , . . . bezeichnen Worte über dem Gesamtalphabet ( *) • Regeln sind geordnete Paare der Form (A, ) P. Sie werden aus Gründen der einfacheren Lesbarkeit meistens als A geschrieben. • (A, 1), (A, 2), . . . , (A, n), wird zusammengefaßt zu A 1| 2|. . . | n. • Jede Regel aus P erhält eineindeutige Nummer zwischen 1 und p = |P|. Der Pfeil (' ') bedeutet in diesem Zusammenhang „wird abgeleitet zu“ und ist nicht mit dem Implikationspfeil zu verwechseln. In Backus-Naur-Form (BNF) wird jedes Nichtterminalsymbol in spitze Klammern eingeschlossen und statt ' ' das Symbol ‘: : =' verwendet. Beispiel P. Brezany BNF: <program> : : = begin <block> end Institut für Softwarewissenschaft – Universität Wien 15
Kontextfrei Grammatiken: Beispiele Beispiel G = {N, , P, S} mit: N = {S}, = {0, 1} und P = {S 1 0, S 2 1, S 3 0 S, S 4 1 S} Ableitung S 4 11 S 3 110 S 4 1101 S 3 11010 S 2 110101 ist ein Satz der von G erzeugten Sprache. Aus G lassen sich alle Binärworte (beliebiger Länge) erzeugen, also die Sprache {0, 1}* – { }. Man braucht nur die Regeln 3 und 4 und als Abschluß die Regel 1 oder 2 in geeigneter Reihenfolge anzuwenden. P. Brezany Institut für Softwarewissenschaft – Universität Wien 16
Beispiel G = {N, , P, S} mit : N = {S, A}, = {I} und P = {S 1 IA, A 2 IA, A 3 } Ableitung S 1 IA 2 IIIA 3 III G erzeugt die Menge aller Wörter I. . . I (n mal) mit n > 0. Die gleiche Sprache könnte auch von der Grammatik G = {N, , P, S} mit : N = {S}, = {I} und P = {S I, S IS} oder P = {S I, S SI} erzeugt werden. P. Brezany Institut für Softwarewissenschaft – Universität Wien
Beispiel G = {N, , P, S} mit N = {S, Z}, = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} und P = {Z 0 0, Z 1 1, . . . , Z 9 9, S 10 Z, S 11 SZ} Aus G lassen sich alle vorzeichenlosen, ganzen Zahlen beliebiger Länge erzeugen, z. B. 1995: S 11 SZ 5 S 5 11 SZ 5 9 S 95 11 SZ 95 9 S 995 10 Z 995 1 1995 Beispiel G = {N, , P, S} mit N = {S, B, Z}, = {a, b , . . . , z, 0, 1, . . . , 9} und P = {B 1 a, B 2 b, . . . , B 26 z, Z 27 0, Z 28 1, . . . , Z 36 9 S 37 B, S 38 SB, S 39 SZ} Aus G lassen sich alle Bezeichner (Identifier) beliebiger Länge erzeugen, z. B. a, a 0 b 1 c 2: S 37 B 1 a S 39 SZ 29 S 2 38 SB 2 3 Sc 2 39 SZc 2 28 S 1 c 2. . . 37 B 0 b 1 c 2 1 a 0 b 1 c 2 P. Brezany Institut für Softwarewissenschaft – Universität Wien
Ableitungen Definition: Sei G = {N, , P, S} 1. Seien , *. genau dann, wenn (gdw) 1, 2, 3 *, A N, (A, 2) P : = 1 A 3 und ß = 1 2 3. Man sagt, daß sich ß in einem Ableitungsschritt aus ableiten läßt bzw. aus ß durch Anwendung eines Reduktionsschritts hervorgeht. 2. Eine Folge ( i)ni=0 mit 0 i < n : i i+1 heißt Ableitung der Länge n von 0 nach n (n 0). ƀ Þ definiert eine Relation in *. Daraus lassen sich auf die übliche Weise die n-fache Anwendung sowie die reflexive und transitive Hülle bilden: Zeichen (+) P. Brezany Schritte Zeichen 1 (n) n > Institut 0 für Softwarewissenschaft – Universität Wien (*) Schritte n 0 0 19
Kontrollwort einer Ableitung Definition: Sei G eine Grammatik und ( i)ni=0 eine Ableitung in G. Weiters sei Ai P die Regel mit der Nummer pi, deren Anwendung den Übergang i i+1 bewirkt. Dann heißt = p 0. . . pn das Kontrollwort der Ableitung und man schreibt 0 ( ) n. ƀ Beispiel Wir beziehen uns auf die vorhin definierte Grammatik zur Erzeugung von Bezeichnern. S ( ) a 1 c 2, mit = 39 29 38 3 39 28 37 1 P. Brezany Institut für Softwarewissenschaft – Universität Wien 20
Erzeugte Sprache Definition: Sei G = {N, , P, S} eine kontextfrei Grammatik. 1. Ein Wort * mit S (*) heißt Satzform von G. Eine Satzform mit * heißt Satz von G. 2. Die von G erzeugte Sprache ist die Menge aller Sätze von G: L(G) : = {w|w * S (*) w}. 3. L(G) ist eine kontextfreie Sprache oder Chomsky-Typ-2 Sprache. ƀ Kellerautomaten sind Akzeptoren für kontextfreie Sprachen. Definition: Seien G 1 und G 2 Grammatiken. G 1 und G 2 heißen äquivalent genau dann, wenn L(G 1) = L(G 2). ƀ Bemerkung: Zu jeder Grammatik gibt es unendlich viele äquivalente Grammatiken. P. Brezany Institut für Softwarewissenschaft – Universität Wien 21
Ableitungsbäume Definition: Sei G = {N, , P, S} eine kontextfrei Grammatik (KFG). Ein Ableitungsbaum (parse tree) für G ist ein markierter, geordneter Baum B = (W, E, v 0), für den gilt: • Jeder Knoten v W ist mit einem Symbol aus N { } markiert. • Die Wurzel v 0 ist mit S markiert. • Jeder innere Knoten ist mit einer Variablen aus N markiert. • Jedes Blatt ist mit einem Symbol aus { } markiert. • Ist v W ein innerer Knoten mit Söhnen v 1, . . . , vk in dieser Anordnung, ist A die Markierung von v und Ai die Markierung von vi, so ist A A 1. . . Ak P. • Ein mit markiertes Blatt hat keinen Bruder (denn das entspräche einer Ableitung wie A ). Institut für Softwarewissenschaft – Universität Wien P. Brezany 22
Das Wort w, das mit einer Ableitung S (*)G w erzeugt worden ist, kann man lesen, indem man alle Blätter des zugehörigen Ableitungsbaumes von links nach rechts durchgeht. Das funktioniert natürlich nur, weil Ableitungsbäume angeordnet sind. Eine Regel A ab ist ja durchhaus etwas anderes als A ba. Neben der Ordnung unter den Söhnen eines Knotens, müssen wir aber auch eine Ordnung unter den Blättern (die nur entfernt verwandt sein müssen) definieren. Wir definieren für Blätter b 1, b 2 W: b 1 < b 2 b 1 und b 2 sind Brüder, und b 1 liegt „links“ von b 2, oder v, v 1, v 2 W, v v 1, v v 2, v 1 < v 2 und v 2 is Vorfahre von bi für i {1, 2}. Ein weiterer Begriff zu Ableitungsbäumen: Sei {b 1, . . . , bk} die Menge aller Blätter in B mit b 1 <. . . < bk, und sei xi die Markierung von bi, so heißt das Wort x 1, . . . , xk die Front von B. P. Brezany Institut für Softwarewissenschaft – Universität Wien 23
Satz: Sei G = {N, , P, S} eine KFG. Dann gilt für jedes Wort w * (S ( )G w) Es gibt einen Ableitungsbaum in G mit Front w. P. Brezany Institut für Softwarewissenschaft – Universität Wien
Die Grammatik G 0 = {N 0, P 0, E} • N 0 = {E, T, F} • 0 = {+, , (, ), a} • P 0 = {E 1 E+T, E 2 T, T 3 T F, T 4 F, F 5 (E), F 6 a Aus G 0 lassen sich arithmetische Ausdrücke mit dem Operanden „a“ und den Operatoren „+“ und „ “ erzeugen. Die Grammatik ist so formuliert, dass „ “ eine höhere Priorität als „+“ besitzt, d. h. seine Operanden stärker bindet: a + a a wird (wie üblich) als äquivalent zu a + (a a) und nicht zu (a + a) a interpretiert. Operanden und Teilausdrücke der Grammatik können beliebig geklammert sein. P. Brezany Institut für Softwarewissenschaft – Universität Wien 25
Beispiel: Zwei Ableitungen des Satzes a (a + a) E 2 T 3 T F 4 F F 6 a F 5 a (E) 1 a (E + T) 2 a (T + T) 4 a (F + T) 6 a (a + T) 4 a + (a + F) 6 a (a + a) Dies ist eine Linksableitung: bei jedem Schritt wird das am weitesten links stehende Nichtterminalsymbol ersetzt. E 2 T 3 T F 5 T (E) 1 T (E + T) 4 T (E + F) 6 T (E + a) 2 T (F + a) 6 T (a + a) 4 F (a + a) 6 a (a + Dies ist eine Rechtsableitung: bei jedem Schritt wird das am weitesten rechts stehende Nichtterminalsymbol ersetzt. Das Kontrollwort einer Links (Rechts)ableitung heißt Links (Rechts)kontrolwort (LKW bzw. RKW). Analog: Links (Rechts)satzform. P. Brezany Institut für Softwarewissenschaft – Universität Wien
Ableitungsbaum für E ( ) a (a + a) E T P. Brezany T * F F ( E ) a E + T a T F F a Institut für Softwarewissenschaft – Universität Wien
Beispiel: G = {N, , P, S} mit N = {S}, = {a, b}, P = {S 1 a. Sb, S 2 ab} erzeugt die Sprache L(G) = {anbn | n 1} Zum Beispiel: S 2 ab S 1 a. Sb 2 aabb S 1 a. Sb 1 aa. Sbb 2 aaabbb. . . S (n-1) an-1 Sbn-1 2 an-1 abbn-1 = anbn Regel 1 P. Brezany Institut für Softwarewissenschaft – Universität Wien S a S b
Beispiel: G: S a. Sa | b. Sb | a | b | erzeugt die Sprache der Polindrome. (z. B. otto, pop, madam, einnegermitgazellezagtimregennie) Erklärung: Words and the numbers equally read both from left to right, and from right to left, are named polindroms. For example, wort POP and number 1331 -- are polindromes. P. Brezany Institut für Softwarewissenschaft – Universität Wien
Mehrdeutigkeit einer Grammatik Definition: • Eine KFG heißt eindeutig, wenn für jeden Satz w L(G) und beliebige zwei Ableitungen von w aus S gilt: die mit den Ableitungen verbundenen Ableitungsbäume sind identisch. • Eine KFG heißt mehrdeutig, wenn sie nicht eindeutig ist. Bemerkungen: • Ist G mehrdeutig, dann gibt es immer ein w L(G) und zwei Ableitungen von w, die unterschiedliche Ableitungsbäume erzeugen. • In der Praxis von Programmiersprachen werden mehrdeutige Grammatiken nicht benutzt, da sie zu Problemen bei der semantischen Definition und Analyse führen. • Eine kontextfrei Sprache L heißt inhärent mehrdeutig gdw. alle KFG für L mehrdeutig 30 sind. P. Brezany Institut für Softwarewissenschaft – Universität Wien
Beispiel (Mehrdeutige Grammatik) G 1 : E E + T | E E | (E) | a G 1 is äquivalent G 0, d. h. L(G 1) = L(G 0). Betrachte a + a a E Entspricht: a+(a a) E + a E E E * E E + * E E a E In G 0 : nächste Folie P. Brezany E Entspricht: (a+a) a Institut für Softwarewissenschaft – Universität Wien a E a
In G 0 : EE E + T T T * F F a a F a E E + T ( ) a + T F ( ) a + a a P. Brezany Institut für Softwarewissenschaft – Universität Wien
Linksableitungen und Rechtsableitungen Definition: Sei G = {N, , P, S} und gelte mit (1) = 1 A 3, (2) = 1 2 3, und A 2 P. • heißt ein Linksableitungsschritt, in Zeichen L genau dann, wenn 1 *. • heißt ein Rechtsableitungsschritt, in Zeichen R genau dann, wenn 3 *. • Eine Ableitung heißt Linksableitung, wenn jeder Schritt ein Linksableitungsschritt ist. • Eine Ableitung heißt Rechtsableitung, wenn jeder Schritt ein Rechtsableitungsschritt ist. ƀ Bemerkung: Jeder Ableitungsbaum definiert genau eine Linksableitung und genau eine Rechtsableitung. Satz: In einer eindeutigen Grammatik G gibt es zu jedem Satz w L(G) 33 P. Brezany Institut für und Softwarewissenschaft – Universität Wien eindeutig eine Linksableitung eine Rechtsableitung.
Bemerkung: 1. Ein Wort 0 * und ein LKW = p 0. . . pn bestimmen eindeutig eine Linksableitung ( i)ni=0 so, dass für alle i (0 i n) i = xi. Ai i, i+1 = xi i i, xi *, Ai i P angewendete Regel mit der Nummer pi. 2. Eine Linksableitung ( i)ni=0 bestimmt eindeutig ein LKW . Analoges gilt für Rechtsableitungen. P. Brezany Institut für Softwarewissenschaft – Universität Wien
KFG : Zusätzliche Beispiel 0: Gegeben sei die KFG G = ({S, X}, {a, b}, P, S) mit der Regelmenge P = {S aa. Sbb | X | , X Xb | }. (a) Finden Sie Ableitungen für Wörter aabb, aabbbbb und aaaabbbbb (b) und zeichnen die Ableitungsbäume. (c) Beschreiben Sie die von G erzeugte Sprache formal. Beispiel 1: Gegeben sei die KFG G = ({S, X}, {a, b}, P, S) mit der Regelmenge P = {S a. Sb | XX | , X Xb | b}. (a) Finden Sie Ableitungen für Wörter aabb, aabbbbb und a 4 b 8 (b) und zeichnen die Ableitungsbäume. (c) Beschreiben Sie die von G erzeugte Sprache formal. Beispiel 2: Sei L = {anbm | n 2 m 2} die von einer Grammatik G erzeugte Sprache. (a) Welche Eigenschaft haben die erzeugten Wörter? (b) Geben Sie eine KFG G an, die L erzeugt. (c) Finden Sie ein Wort w für das gilt: w L(G) |w| = 10 und zeigen Sie an Hand einer Ableitung die Richtigkeit Ihrer Behauptung. (d) Finden Sie ein Wort w´ L(G) |w´| = 10 und erklären Sie, warum w´nicht der Element der Sprache ist. P. Brezany Institut für Softwarewissenschaft – Universität Wien 35
KFG : Zusätzliche Beispiele (2) Beispiel 4: Gegeben sei die KF Sprache L = {anbm | n 4, m n-1} (a) Geben Sie eine KFG G an, sodaß L = L(G). (b) Konstruieren Sie die Ableitungsbäme für alle Wörter {w L | 7 |w| 9}. Beispiel 5: Gegeben sei die KF Sprache L = {a 2 nbman | n 0, m 1} (a) Geben Sie eine KFG G an, sodaß L = L(G). (b) Konstruieren Sie die Ableitungsbäume für alle Wörter {w L | |w| 7}. Beispiel 6: Gegeben sei die KF Sprache L = {anc 2 m+1(ab)n | m, n 0} über dem Alphabet {a, b, c}. (a) Konstruieren Sie eine kontextfreie Grammatik G, welche L erzeugt. (b) Zeichnen Sie die Ableitungsbäume für die Wörter c, acab und aacccabab. P. Brezany Institut für Softwarewissenschaft – Universität Wien
KFG : Zusätzliche Beispiele (3) Beispiel 7: Gegeben sei die KF Sprache L = {am a 3 n=am+3 n | m, n 1} über dem Alphabet {a, , =}. (a) Konstruieren Sie eine kontextfreie Grammatik G, welche L erzeugt. (b) Zeichnen Sie die Ableitungsbäume für die Wörter a aaa=aaaa, aaaaaa=aaaaa und aaaa aaa=aaaaaaa. Beispiel 8: Gegeben sei die KF Sprache L = { un+1 vwn | n 0 } (a) Geben Sie eine KFG G an, sodaß L = L(G). (b) Konstruieren Sie die Ableitungsbäume für uw, u 4 vw 3. P. Brezany Institut für Softwarewissenschaft – Universität Wien
- Slides: 37