• Keine Ergebnisse gefunden

Aufgabe 7.2 (Von PDA zu kontextfreier Grammatik) Gegeben sei der folgenden PDAM, der mit leerem Stack akzeptiert

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgabe 7.2 (Von PDA zu kontextfreier Grammatik) Gegeben sei der folgenden PDAM, der mit leerem Stack akzeptiert"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

WS 2016 / 2017 25.01.2017 Ubungen zur Vorlesung¨

Theoretische Informatik I Blatt 7

Prof. Dr. Roland Meyer M.Sc. Sebastian Muskalla

M.Sc. Peter Chini Abgabe bis 01.02.2017 um 12 Uhr

Aufgabe 7.1 (Alternative PDA-Konstruktion)

Ein TPDAP ist ein Pushdown-Automat mit initialem Stack-Symbol #, also ein Tupel P = (Q,Σ,Γ, q0,#, δ, QF), der mit Endzust¨anden akzeptiert und dessen Transitionen

• immer genau ein Symbol vom Stack nehmen und

• immer h¨ochstens zwei Elemente auf den Stack pushen.

Zeigen Sie, dass die Sprachen, die von TPDAs akzeptiert werden genau die Sprachen sind, die von PDAs akzeptiert werden.

Hinweis: Konstruieren Sie f¨ur jeden PDA (TPDA) einen TPDA (PDA), der die gleiche Sprache erzeugt.

Aufgabe 7.2 (Von PDA zu kontextfreier Grammatik)

Gegeben sei der folgenden PDAM, der mit leerem Stack akzeptiert.

q0 a q1 q2

#/#AA

ε A/A

a;A/AAA b;A/

ε; #/ε

Nutzen Sie das Verfahren aus der Vorlesung und konstruieren Sie eine kontextfreie Grammatik GmitL(G) =L(M). Welche Sprache wird von M erzeugt?

Hinweis: Ein Nicht-Terminal der Form(q, A, q0) erzeugt ein Terminalwortw genau dann, wenn M, gestartet auf q mit Input w und initialem StacksymbolA, nach q0 ¨ubergehen kann und dort leeren Stack hat.

(2)

Aufgabe 7.3 (Zwei-Stack-Pushdowns)

EinZwei-Stack-Pushdown-Automat (2PDA) ist ein Tupel (Q,Σ,Γ, q0, δ, QF), mit einer endlichen Menge von Zust¨anden Q, einem Eingabealphabet Σ, einem Stackalphabet Γ, einem Startzustand q0 ∈ Q, einer Menge von Endzust¨anden QF ⊆ Q und einer Transitionsrelation, die es erlaubt, zwei Stacks zu manipulieren:

δ ⊆Q×(Σ∪ {ε})×((Γ∪ {ε})×Γ)

| {z }

Stack 1

×((Γ∪ {ε})×Γ)

| {z }

Stack 2

×Q

Das Ziel dieser Aufgabe ist es, zu beweisen, dass 2PDAs eine ausdrucksst¨arkere Sprach- klasse bilden als PDAs.

a) Konstruieren Sie einen 2PDA f¨ur die Sprache L={an.bk.cn.dk|n, k∈N}.

b) Beweisen Sie, dass es keinen PDA geben kann, der die Sprache Lakzeptiert.

Aufgabe 7.4 (Modellierung rekursiver Programme)

Gegeben ist der folgende C-¨ahnliche Code mit der Funktion int r(), die zuf¨allig 0 oder 1zur¨uckgibt. Konstruieren Sie einen Pushdown-Automaten, der das Verhalten des Programms simuliert.

void t() {

x=1;

if(r()==1) s();

}

void s() {

x=0;

if(r()==1) t();

}

int x=0;

void main() {

t();

}

Hinweis: Der PDA sollte den aktuellen Programmz¨ahler und die Belegung der Variablen x speichern. Der Programmz¨ahler gibt an, in welcher Zeile des Codes sich das Program gerade befindet. Funktionenaufrufe werden im Stack verwaltet. Dabei ist immer wich- tig, welche Funktion den Aufruf get¨atigt hat. Ist dieser Aufruf abgearbeitet, sollte das entsprechende Element vom Stack entfernt werden.

Abgabe bis 01.02.2017 um 12 Uhr im Kasten neben Raum 343.

Referenzen

ÄHNLICHE DOKUMENTE

Um diese entbrennt ein heftiger Streit, bei dem einer der Piraten das Leben l¨ asst. Die verbleibenden 16 Piraten versuchen erneut, die Goldst¨ ucke gerecht zu verteilen,

Theoretische Informatik 2 Ungewertete Aufgaben, Blatt 2. Besprechung: In Ihrer ¨ Ubung in

Theoretische Informatik 1 Ungewertete Aufgaben, Blatt 7. Besprechung: In Ihrer ¨ Ubung in KW

Heften Sie bitte ihre L¨osungen zusammen und schreiben Sie die Namen aller Personen ihrer Arbeitsgruppe auf die oberste Seite sowie die Tutoriumsgruppe, den Tutor und die Uhrzeit..

Gesucht ist eine bijektive Abbildung zwischen den ungekürzten Brüchen und den natür- lichen Zahlen..

Auch das Abbildungsverhalten ist sofort klar: In Richtung der ersten Achse passiert nichts, in Richtung der zweiten Achse haben wir den Kontraktionsfaktor p − q... In

indem Du zunächst seinen Grad, dann seine Nullstellen und dann mit der Induktions- voraussetzung seinen Leitkoeffizienten bestimmst. Abgabe bis Dienstag,

Definiere einen DFA ¨ uber dem Alphabet Σ = {0, 1}, der alle Zeichenfolgen akzeptiert, in denen jeder Block aus f¨ unf aufeinanderfolgenden Zeichen mindestens zwei Nullen enth¨