Top Banner
CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10 . PLEASE REFER TO THE TEXTBOOK FOR COMPLETE COVERAGE
33

CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Dec 22, 2015

Download

Documents

Alexis Walton
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

CS 3240: Languages and Computation

Pushdown Automata & CF GrammarsNOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10 . PLEASE REFER TO THE TEXTBOOK FOR COMPLETE COVERAGE

Page 2: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Project 1

Page 3: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Pushdown Automata

Similar to finite automata, but for CFG’s Finite automata are not adequate for CFG’s

because we cannot keep track of what we’ve doneAt any point, we only know the current state, not

previous states Need memory

PDA’s are finite automata with a stack

Page 4: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

FA and PDA Schematics

State control

a a b b

State control

a a b b

xyz

FA

PDA

Stack: Infinite LIFO (last in first out) device

Page 5: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Formal Definition of PDA

A pushdown automaton is a 6-tuple (Q, Σ, , , q0, F), where Q, Σ, , and F are all finite sets, and Q is the set of states Σ is the set of input alphabet is the stack alphabet :Q×Σ× ,P(Q×) is the transition function q0 is the start state and FQ is the set of accept states

Page 6: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

How does PDA work?

Start in start state Read input character, perform state transition

and update stack Clone a machine if multiple transitions are

possible At end of input if any machine accepts and the

stack is empty then accept

Page 7: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

read 0 & push 0 on stack

read ε & push ε on stack

read ε & push $ on stack

read 1 & pop 0 off stack

read ε & pop $ off stack

Language accepted: {0n1n | n 0}

Page 8: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()S$

qloop

Page 9: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

(S)$

Page 10: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

S)$

(

Page 11: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

SS)$

(

Page 12: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

()S)$

(

Page 13: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

)S)$

((

Page 14: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

S)$

(()

Page 15: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

())$

(()

Page 16: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

))$

(()(

Page 17: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

)$

(()()

Page 18: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

$

(()())

Page 19: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Example

Read (()())

qstartε, ε S$ ε, $ ε

(,(ε

),)ε

ε,SSS

ε,S(S)

ε,S()

qloop

(()())

qaccept

Page 20: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

More Examples

L= {aibjck, i=j or j=k>, and i,j,k>=0}.

L= {wwR | w in {0,1}* }

Page 21: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Differences between PDA’s and NFA’s Transitions read one symbol of the string

and push a string onto or pop a symbol off of the stack

Stack alphabet is not necessarily the same as the alphabet for the languagee.g., $ marks bottom of stack in previous

(0n1n) example

Page 22: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Instantaneous descriptions

Page 23: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.
Page 24: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Equivalence of pda and cfg

Page 25: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Equivalence of PDA’s and CFG’s

Theorem: A language is context free if and only if some pushdown automaton accepts it by e.s.

Proved in two lemmas – one for the “if” direction and one for the “only if” direction

We will only do the “only if” step – i.e., show that every context-free language has an associated PDA

Page 26: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

CFG’s are recognized by PDA’s

Lemma: If a language is context free, then some pushdown automaton accepts it by emp.st.

Proof idea: Construct a PDA following CFG rules

Page 27: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Constructing the PDA

You can read any symbol in when that symbol is at the top of the stack Transitions of the form a,aε

The rules will be pushed onto the stack – when a variable A is on top of the stack and there is a rule Aw, you pop A and push w

You accept only if the input is exhausted and the stack is empty

Page 28: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Idea of PDA construction for AxBz

State control

a b

At

State control

a b

xBzt

Page 29: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Given G build PDA

Page 30: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.
Page 31: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.

Deterministic PDA

Page 32: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.
Page 33: CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.