Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Definition (Rekursiv) Sei Z := {, (, ), *, } und A ein von Z disjunktes Alphabet (also A Z = ). Ein regulärer Ausdrück ist eine Zeichenfolge über dem Alphabet A Z, die rekursiv mithilfe folgender Regeln erzeugt werden kann (z.b. von einer Grammatik): ist ein regulärer Ausdruck; 2 Für x A ist x ein regulärer Ausdruck; 3 Wenn R und R 2 reguläre Ausdrücke sind, so sind auch (R R 2 ) und (R R 2 ) reguläre Ausdrücke; 4 Wenn R ein regulärer Ausdruck ist, dann auch (R*); 5 Nichts anderes ist ein regulärer Ausdruck. Ein regulärer Ausdruck R beschreibt die formale Sprache R. KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 3/4
Aufgabe Aufgabe : fieses Regex (Übungsblatt 22) Sei R = c*( * a(a b c)* (a b c)*b)c*. Gilt R = {a, b, c}? Begründen Sie Ihre Antwort. Nein, weil ba R. KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 4/4
Rechtslineare Grammatiken Definition Sei G = (N, T, S, P) eine (kontextfreie) Grammatik. Dann heißt G rechtslinear, wenn jede Produktion in P eine der folgenden Formen hat: X w mit X N, w T ; 2 X wy mit X, Y N, w T. Satz Für jede formale Sprache L sind die folgenden Aussagen äquivalent: L kann von einem endlichen Akzeptor erkannt werden (also es gibt einen endlichen Automat A mit L(A) = L); 2 L kann durch einen regulären Ausdruck beschrieben werden (also es gibt einen regulären Ausdruck R mit R = L); 3 L kann von einer rechtslinearen Grammatik erzeugt werden (also es gibt eine rechtslineare Grammatik G mit L(G) = L). KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 7/4
Aufgabe 2: Regex Akzeptor (Klausur März 23) Gegeben sei der reguläre Ausdruck R = ( )*. Geben Sie über dem Alphabet X einen endlichen Akzeptor A an, sodass L(A) = R. Hinweis. Es genügen 7 Zustände. 2 Zeichnen Sie einen Kantorowitsch-Baum (Regex-Baum) zu R. A q q q 2 q 3, q 5 q 4 q m, KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 8/4
Kantorowitsch-Baum zu R: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 9/4
Aufgabe 3: Akzeptor Regex (Übungsblatt 2) Gegeben ist folgender endlicher Akzeptor A (von letzter Woche!): q q q 2 Geben Sie einen regulären Ausdruck R an, sodass L(A) = R. ( (*)*)* KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 /4
Aufgabe 4: Regex, Akzeptor und Grammatik (Übungsblatt 22) Geben Sie für die folgenden Sprachen L i jeweils einen Akzeptor A i, einen regulären Ausdruck R i und eine rechtslineare Grammatik G i, sodass für i {, 2} gilt: L(A i ) = R i = L(G i ) = L i. L = {w {, } k N : Num 2 (w) = 2 k + }. 2 L 2 = { 3m m N } {w 3n+2 w {, }, n N }. Hinweis. Benutzen Sie möglichst wenige Zustände für die Akzeptoren, und möglichst wenige Zeichen für die reguläre Ausdrücke. KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 /4
R = *( *). A q q q 2, q m, q 4 q 3 G =({q,..., q 4, q m }, {, }, q, {q q q, q q 2 q 4, q 2 ε q 3 q 4, q 3 q 3 q 4, q 4 ε}) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 2/4
2 R 2 = ()* ( )*()*. q, A 2 q q 2 G 2 = ({q,..., q 2 }, {, }, q, {q ε q q, q q 2 q, q 2 q q }) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 3/4
Humor Quelle: xkcd.com KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft 26..25 4/4