1 / 9

Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke)

Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke). Prof. Dr. Th. Ottmann. Motivation für reguläre Ausdrücke. Ziel: Automatenfreie Charakterisierung der regulären Sprachen, also der von endlichen Automaten akzeptierbaren Mengen von Worten.

nissim-wall
Download Presentation

Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vorlesung Informatik 3Einführung in die Theoretische Informatik(05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann

  2. Motivation für reguläre Ausdrücke Ziel: Automatenfreie Charakterisierung der regulären Sprachen, also der von endlichen Automaten akzeptierbaren Mengen von Worten. Kompakte Notation zur Bezeichnung von regulären Sprachen. Unterschied: Regulärer Ausdruck α(Bezeichnung, syntaktisches Konzept) und die von einem regulären Ausdruck α bezeichnete Menge L(α) von Worten (semantisches Konzept). Reguläre Sprachen besitzen Abgeschlossenheitseigenschaften gegenüber Operationen an Mengen von Worten. Reguläre Sprachen haben viele Anwendungen, sind aber leider sehr beschränkt.

  3. Reguläre Ausdrücke Wir definieren simultan, was unter einem regulären Ausdruck α über dem Alphabet  und der von α bezeichneten Menge L(α) * verstanden wird: Sei  ein endliches Alphabet. •  ist ein regulärer Ausdruck über  und L() = . • ε ist ein regulärer Ausdruck über  und L(ε) = {ε}. • Für jedes a   ist a ein regulärer Ausdruck über  und L(a) = {a}. • Sind α und β reguläre Ausdrücke über , so auch (α  β), (αβ), α* und L((α  β)) = L(α)  L(β) L((αβ)) = L(α) L( β) L(α* ) = (L(α))* Konvention: Klammern dürfen weggelassen werden, wenn keine Missverständnisse zu befürchten sind.

  4. Bemerkungen und Beispiele

  5. Konstruktion von DFAs zu regulären Ausdrücken Satz 1: Zu jedem regulären Ausdruck α über dem Alphabet  kann man einen DFA A = (Q, , δ, s0, F) angeben mit L(A) = L(α). Bew.: Durch Induktion über den Aufbau von α. (1) Sei α = . Dann ist L(α) = L(A) für den wie folgt definierten DFA A: (2) Sei α = ε. Dann ist L(α) = L(A) für den wie folgt definierten DFA A:

  6. (3) Sei α = a, mit a  . • Dann ist L(α) = L(A) für den wie folgt definierten DFA A: • (4) Hat man bereits DFAs A und B, die die von α und β bezeichneten • Mengen L(α) und L(β) akzeptieren, also L(A) = L(α) und L(B) = L(β), • so kann man offensichtlich DFAs konstruieren, die • L((α  β)) = L(α)  L(β) • L((αβ)) = L(α) L( β) • L(α* ) = (L(α))* akzeptieren. Denn die Klasse der regulären Sprachen ist abgeschlossen gegenüber Vereinigung, Verkettung und Kleene Stern!

  7. Beispiel Gegeben sei der reguläre Ausdruck α = (ab  a)* über dem Alphabet {a, b}.

  8. Konstruktion eines regulären Ausdrucks zu DFA Satz: Zu jedem DFA A =(S, , δ, s1, F) kann man einen regulären Ausdruck α angeben mit L(A) = L(α).

  9. Weitere Abschlusseigenschaften Sei für ein Wort w = a1a2 … an, n ≥ 0, w  *, das Spiegelbild sp(w) definiert durch sp(w) = anan-1 … a1. Satz: Zu jedem regulären Ausdruck α über  kann man einen regulären Ausdruck αsp angeben, so dass L(αsp ) = {sp(w); w  L(α)}

More Related