• Keine Ergebnisse gefunden

Einf¨uhrung in die Informatik IV

N/A
N/A
Protected

Academic year: 2021

Aktie "Einf¨uhrung in die Informatik IV"

Copied!
64
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

SS 2005

Einf¨ uhrung in die Informatik IV

Ernst W. Mayr

Fakult¨at f¨ur Informatik TU M¨unchen

http://www14.in.tum.de/lehre/2005SS/info4/index.html.de 27. Mai 2005

(2)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

(3)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Wir betrachten f¨ur das Parseneinen bottom-up-Ansatz, wobei die Reduktionen von links nach rechts angewendet werden.

(4)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Dabei k¨onnen sich bei naivem Vorgehen allerdings Sackgassen ergeben, die dann aufgrund des Backtracking zu einem ineffizienten Algorithmus f¨uhren:

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a S + a ∗ a

Sackgasse!

(5)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Dabei k¨onnen sich bei naivem Vorgehen allerdings Sackgassen ergeben, die dann aufgrund des Backtracking zu einem ineffizienten Algorithmus f¨uhren:

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a S + a ∗ a

Sackgasse!

(6)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Dabei k¨onnen sich bei naivem Vorgehen allerdings Sackgassen ergeben, die dann aufgrund des Backtracking zu einem ineffizienten Algorithmus f¨uhren:

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a S + a ∗ a

Sackgasse!

(7)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Dabei k¨onnen sich bei naivem Vorgehen allerdings Sackgassen ergeben, die dann aufgrund des Backtracking zu einem ineffizienten Algorithmus f¨uhren:

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a S + a ∗ a

Sackgasse!

(8)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Dabei k¨onnen sich bei naivem Vorgehen allerdings Sackgassen ergeben, die dann aufgrund des Backtracking zu einem ineffizienten Algorithmus f¨uhren:

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a S + a ∗ a

Sackgasse!

(9)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Dabei k¨onnen sich bei naivem Vorgehen allerdings Sackgassen ergeben, die dann aufgrund des Backtracking zu einem ineffizienten Algorithmus f¨uhren:

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a

S + a ∗ a Sackgasse!

(10)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(11)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(12)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(13)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(14)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(15)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(16)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(17)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(18)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E

Sackgasse!

(19)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) . . . oder auch

Regeln:

S →A

A→E|A+E|A−E E →P |E∗P |E/P P →(A)|a

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a

A ∗ a

A ∗ P

A ∗ E Sackgasse!

(20)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Zur Behebung des Problems f¨uhren wir f¨ur jede Ableitungsregel (besser hier: Reduktionsregel) einenLookahead (der L¨angek) ein (in unserem Beispielk= 1) und legen fest, dass eine

Ableitungsregel nur dann angewendet werden darf, wenn die n¨achstenkZeichen mit den erlaubten Lookaheads ¨ubereinstimmen.

(21)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Produktion Lookaheads (der L¨ange 1)

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

(22)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(23)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(24)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(25)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(26)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(27)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(28)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(29)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(30)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(31)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(32)

4.10 LR(k)-Grammatiken

Beispiel 91 (Grammatik f¨ur Arithmetische Ausdr¨ucke) Damit ergibt sich

Produktion Lookaheads

S →A

A→E +,−,), A→A+E +,−,), A→A−E +,−,), E →P beliebig E →E∗P beliebig E →E/P beliebig P →(A) beliebig P →a beliebig

Ableitung:

a + a ∗ a P + a ∗ a E + a ∗ a A + a ∗ a A + P ∗ a A + E ∗ a A + E ∗ P

A + E

A S

(33)

Definition 92

Eine kontextfreie Grammatik ist eineLR(k)-Grammatik, wenn man durch Lookaheads der L¨ange kerreichen kann, dass bei einer Reduktion von links nach rechts in jedem Schritt h¨ochstens eine Produktion/Reduktion anwendbar ist.

Korollar 93

Jede kontextfreie Sprache, f¨ur die es eine LR(k)-Grammatik gibt, ist deterministisch kontextfrei.

(34)

Definition 92

Eine kontextfreie Grammatik ist eineLR(k)-Grammatik, wenn man durch Lookaheads der L¨ange kerreichen kann, dass bei einer Reduktion von links nach rechts in jedem Schritt h¨ochstens eine Produktion/Reduktion anwendbar ist.

Korollar 93

Jede kontextfreie Sprache, f¨ur die es eine LR(k)-Grammatik gibt, ist deterministisch kontextfrei.

(35)

Bemerkung:

Es gibt eine (im allgemeinen nicht effiziente) Konstruktion, um aus einerLR(k)-Grammatik,k >1, eine ¨aquivalente

LR(1)-Grammatik zu machen.

Korollar 94

Die folgenden Familien von Sprachen sind gleich:

die Familie DCFL, dieLR(1)-Sprachen.

(36)

Bemerkung:

Es gibt eine (im allgemeinen nicht effiziente) Konstruktion, um aus einerLR(k)-Grammatik,k >1, eine ¨aquivalente

LR(1)-Grammatik zu machen.

Korollar 94

Die folgenden Familien von Sprachen sind gleich:

die Familie DCFL, dieLR(1)-Sprachen.

(37)

Bemerkung:

Es gibt eine (im allgemeinen nicht effiziente) Konstruktion, um aus einerLR(k)-Grammatik,k >1, eine ¨aquivalente

LR(1)-Grammatik zu machen.

Korollar 94

Die folgenden Familien von Sprachen sind gleich:

die Familie DCFL, dieLR(1)-Sprachen.

(38)

Bemerkung:

Es gibt eine (im allgemeinen nicht effiziente) Konstruktion, um aus einerLR(k)-Grammatik,k >1, eine ¨aquivalente

LR(1)-Grammatik zu machen.

Korollar 94

Die folgenden Familien von Sprachen sind gleich:

die Familie DCFL, dieLR(1)-Sprachen.

(39)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Regeln:

S→A S→A

A→E |E+A A→EA0 A0→+A| E→P |P∗E E→P E0

E0→ ∗E | P →(A)|a P →(A)|a

(40)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Regeln:

S→A S→A

A→E |E+A A→EA0 A0→+A| E→P |P∗E E→P E0

E0→ ∗E | P →(A)|a P →(A)|a

Wir betrachten nun f¨ur das Parseneinen top-down-Ansatz, wobei die Produktionen in Form einer Linksableitung angewendet werden.

(41)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Regeln:

S→A

A→E |E+A E→P |P ∗E P →(A)|a

Ableitung:

S A E P

a + a ∗ a

Sackgasse!

(42)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Regeln:

S→A

A→E |E+A E→P |P ∗E P →(A)|a

Ableitung:

S A E P

a + a ∗ a

Sackgasse!

(43)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Regeln:

S→A

A→E |E+A E→P |P ∗E P →(A)|a

Ableitung:

S A E P

a + a ∗ a

Sackgasse!

(44)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Regeln:

S→A

A→E |E+A E→P |P ∗E P →(A)|a

Ableitung:

S A E P

a + a ∗ a

Sackgasse!

(45)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Regeln:

S→A

A→E |E+A E→P |P ∗E P →(A)|a

Ableitung:

S A E P

a + a ∗ a

Sackgasse!

(46)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Regeln:

S→A

A→E |E+A E→P |P ∗E P →(A)|a

Ableitung:

S A E P

a + a ∗ a Sackgasse!

(47)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik)

Wir bestimmen nun f¨ur jede Produktion A→α ihre

Auswahlmenge, das heißt die Menge aller terminalen Pr¨afixe der L¨ange ≤kder von α ableitbaren Zeichenreihen.

(48)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik)

Wir bestimmen nun f¨ur jede Produktion A→α ihre

Auswahlmenge, das heißt die Menge aller terminalen Pr¨afixe der L¨ange ≤kder von α ableitbaren Zeichenreihen.

Es ergibt sich (der Einfachheit lassen wir-Produktionen zu):

S →A {a,(}

A →EA0 {a,(}

A0 →+A {+}

A0 → {)}

E →P E0 {a(}

E0 → ∗E {∗}

E0 → {+)}

P →(A) {(}

P →a {a}

(49)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik) Damit ergibt sich

S →A {a,(}

A →EA0 {a,(}

A0 →+A {+}

A0 → {)}

E →P E0 {a(}

E0 → ∗E {∗}

E0 → {+)}

P →(A) {(}

P →a {a}

Ableitung:

S A ... E+E

... E+P ∗P

... a+a∗a

(50)

4.11 LL(k)-Grammatiken

Beispiel 95 (Noch eine Grammatik)

Bemerkung:

Parser f¨ur LL(k)-Grammatiken entsprechen der Methode des rekursiven Abstiegs (recursive descent).

(51)

5. Kontextsensitive und Typ-0-Sprachen

5.1 Turingmaschinen

Turingmaschinen sind das grundlegende Modell, das wir f¨ur Computer/Rechenmaschinen verwenden. Es geht aufAlan Turing (1912–1954) zur¨uck.

(52)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(53)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(54)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(55)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(56)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(57)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(58)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(59)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(60)

Definition 96

Einenichtdeterministische Turingmaschine (kurz TM) wird durch ein 7-TupelM = (Q,Σ,Γ, δ, q0,, F) beschrieben, das folgende Bedingungen erf¨ullt:

1 Q ist eine endliche Menge vonZust¨anden.

2 Σ ist eine endliche Menge, dasEingabealphabet.

3 Γ ist eine endliche Menge, das Bandalphabet.

4 δ :Q×Γ→ P(Q×Γ× {L, R, N})ist dieUbergangsfunktion.¨

5 q0∈Qist derStartzustand.

6 ∈Γ\Σist das Leerzeichen.

7 F ⊆Qist die Menge der (akzeptierenden) Endzust¨ande.

Eine Turingmaschine heißtdeterministisch, falls gilt

|δ(q, a)| ≤1 f¨ur alle q∈Q, a∈Γ.

(61)

Erl¨auterung:

Intuitiv bedeutet δ(q, a) = (q0, b, d) bzw. δ(q, a)3(q0, b, d):

Wenn sichM im Zustandq befindet und unter dem

Schreib-/Lesekopf das Zeichenasteht, so gehtM im n¨achsten Schritt in den Zustandq0 ¨uber, schreibt an die Stelle desa’s das Zeichenbund bewegt danach den Schreib-/Lesekopf um eine Position nachrechts (fallsd=R), links(fallsd=L) bzw. l¨asst ihnunver¨andert(falls d=N).

(62)

Beispiel 97

Es soll eine TM angegeben werden, die eine gegebene Zeichenreihe aus{0,1}+ als Bin¨arzahl interpretiert und zu dieser Zahl 1 addiert.

Folgende Vorgehensweise bietet sich an:

1 Gehe ganz nach rechts bis ans Ende der Zahl. Dieses Ende kann durch das erste Auftreten eines Leerzeichens gefunden werden.

2 Gehe wieder nach links bis zur ersten 0 und ¨andere diese zu einer 1. Ersetze dabei auf dem Weg alle 1en durch 0.

(63)

Beispiel 97

Es soll eine TM angegeben werden, die eine gegebene Zeichenreihe aus{0,1}+ als Bin¨arzahl interpretiert und zu dieser Zahl 1 addiert.

Folgende Vorgehensweise bietet sich an:

1 Gehe ganz nach rechts bis ans Ende der Zahl. Dieses Ende kann durch das erste Auftreten eines Leerzeichens gefunden werden.

2 Gehe wieder nach links bis zur ersten 0 und ¨andere diese zu einer 1. Ersetze dabei auf dem Weg alle 1en durch 0.

(64)

Beispiel 97

Es soll eine TM angegeben werden, die eine gegebene Zeichenreihe aus{0,1}+ als Bin¨arzahl interpretiert und zu dieser Zahl 1 addiert.

Folgende Vorgehensweise bietet sich an:

1 Gehe ganz nach rechts bis ans Ende der Zahl. Dieses Ende kann durch das erste Auftreten eines Leerzeichens gefunden werden.

2 Gehe wieder nach links bis zur ersten 0 und ¨andere diese zu einer 1. Ersetze dabei auf dem Weg alle 1en durch 0.

Also:

δ(q0,0) = (q0,0, R) δ(q1,1) = (q1,0, L) δ(q0,1) = (q0,1, R) δ(q1,0) = (qf,1, N) δ(q0,) = (q1,, L) δ(q1,) = (qf,1, N) Damit istQ={q0, q1, qf}und F ={qf}.

Referenzen

ÄHNLICHE DOKUMENTE

F¨ ur andere Sprachtypen lassen sich Grammatiken konstruieren, f¨ ur die nicht mehr entscheidbar ist, ob die Sprache leer ist..

Mit der gleichen Methode und dem gleichen Rechenaufwand kann man zu dem getesteten Wort, falls es in der Sprache ist, auch gleich einen Ableitungsbaum konstruieren, indem man sich

Das Argument war dann, dass beim Erkennen von z (mindestens) ein Zustand zweimal besucht werden muss und damit der dazwischen liegende Weg im Automaten beliebig oft wiederholt

Dies ist auch nach der Transformation der Fall. W¨ ahrend vor der Transformation alle Zeichenreihen der obigen Form von rechts her aufgebaut werden, werden sie danach von links

Ernst W.. Am Anfang steht ein neues Kellersymbol auf dem Stack. Sobald bei der Simulation von A 1 dieses auf dem Stack vorgefunden wird, weiß man, dass A 1 seinen Stack leerger¨

2 Werden zwei oder ein Stacksymbol abgelegt und dabei das oberste Stacksymbol X ge¨ andert, entfernen wir zun¨ achst in einem eigenen Schritt das oberste Stacksymbol und pushen dann

Die von linear beschr¨ ankten, nichtdeterministischen Turingmaschinen akzeptierten Sprachen sind genau die kontextsensitiven (also Chomsky-1)

Gibt es einen Unterschied, wenn man sich auf eine bestimmte Programmiersprache beschr¨ ankt..