1 pdas accept context-free languages. 2 context-free languages (grammars) languages accepted by pdas...

69
1 PDAs Accept Context-Free Languages

Post on 22-Dec-2015

254 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

1

PDAs Accept Context-Free Languages

Page 2: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

2

Context-Free

Languages(Grammars)

LanguagesAccepted

byPDAs

Theorem:

Page 3: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

3

Context-Free

Languages(Grammars)

LanguagesAccepted

byPDAs

Proof - Step 1:

Convert any context-free grammar to a PDA with:

GM )()( MLGL

Page 4: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

4

Context-Free

Languages(Grammars)

LanguagesAccepted

byPDAs

Proof - Step 2:

Convert any PDA to a context-free grammar with: G

M)()( MLGL

Page 5: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

5

Converting

Context-Free Grammarsto

PDAs

Proof - step 1

Page 6: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

6

Context-Free

Languages(Grammars)

LanguagesAccepted

byPDAs

Convert any context-free grammar to a PDA with:

GM )()( MLGL

Page 7: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

7

to a PDA such that:M

We will convert grammar G

M simulates leftmost derivations of G

Page 8: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

8

q0 q1 2qS, , $ $

wA, aa,

Production in

wATerminal in

aG G

Convert grammar to PDA G M

Page 9: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

9

nkk

mk XX

S

11

11

Grammarleftmost derivation

,$),(

$),,(

$),,(

,$),(

2

111

111

110

q

XXq

Sq

q

mnk

nkk

nkk

PDA computationSimulates grammar leftmost derivations

Leftmostvariable

Page 10: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

10

q0 q1 2qS, , $ $

Grammar

PDA

T

TaT

bS

aSTbS

,

,

,

,

T

TaT

bS

aSTbS

bb

aa

,

,

Example

Page 11: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

11

abab

abTab

abTb

aSTb

S

,$),(

,$),(

$),,(

$),,(

$),,(

$),,(

$),,(

$),,(

$),,(

,$),(

2

1

1

1

1

1

1

1

1

0

q

q

bbq

ababq

Tababq

Tbabq

bTbbabq

STbbabq

Sababq

ababq

Grammarderivation

PDA computation

Page 12: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

120q q1 2q

S, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab

Time 0

b

Derivation:

Page 13: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

13

q0 q1 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

S

Time 0

Derivation: S

Page 14: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

14

q0 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

a

b

ST

q1

Time 1

Derivation: aSTbS

Page 15: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

15

q0 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

a

b

ST

q1

Time 2

aSTbS Derivation:

Page 16: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

16

q0 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

bTb

q1

Time 3

Derivation: abTbaSTbS

Page 17: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

17

q0 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

bTb

q1

Time 4

Derivation: abTbaSTbS

Page 18: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

18

q0 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

b

Ta

q1

Time 5

Derivation: abTababTbaSTbS

Page 19: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

19

q0 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

b

Ta

q1

Time 6

Derivation: abababTababTbaSTbS

Page 20: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

20

q0 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

ba

q1

Time 7

Derivation: abababTababTbaSTbS

Page 21: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

21

q0 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

b

q1

Time 8

Derivation: abababTababTbaSTbS

Page 22: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

22

q0 q1 2qS, , $ $

T

TaT

bS

aSTbS

,

,

,

,

bb

aa

,

,

Input

Stack

$

a ab b

accept

Time 9

Derivation: abababTababTbaSTbS

Page 23: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

23

Grammar generates string

G

wS*

PDA accepts

M

,$),(,$),( 20 qwq

In general, it can be shown that:

w wIf andOnly if

Therefore )()( MLGL

Page 24: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

24

Therefore:

For any context-free language there is a PDA that accepts

Context-Free

Languages(Grammars)

LanguagesAccepted

byPDAs

LL

Page 25: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

25

Converting

PDAsto

Context-Free Grammars

Proof - step 2

Page 26: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

26

Context-Free

Languages(Grammars)

LanguagesAccepted

byPDAs

Convert any PDA to a context-free grammar with: G

M)()( MLGL

Page 27: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

27

We will convert PDA toM

a context-free grammar such that:G

Msimulates computations ofwith leftmost derivations

G

Page 28: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

28

Some Necessary Modifications

If necessary, modify the PDA so that:

1. The stack is never empty during computation

2. It has a single accept state and empties the stack when it accepts a string

3. Has transitions without popping

Page 29: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

29

1. Modify the PDA so that the stack is never empty during computation

$

Stack

a

OK

$

OK NOT OK

Page 30: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

30

$

a$

Introduce the new symbol to mark the bottom of the stack

#

$a

#$# #

Page 31: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

31

Original PDA

$#,$

At the beginning insert into the stack#

original initial state

new initial state

Page 32: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

32

iq jqs ,

iq jqs ,

## ,

halting state

Convert all transitions so that after popping the automaton halts $

xx,}{#x

pop $

pop$

Page 33: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

33

PDA

fq

x,

,

Empty stack

}{#x

2. Modify the PDA so that at end it empties stack and has a unique accept state

,

,

Old accept states

#,

New accept state

Page 34: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

34

3. Modify the PDA so that it has no transitions popping :

iq jqy ,

iq jq y,

}{#

Page 35: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

35

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

)}()(:},{{)( * wnwnbawML ba

Example of a PDA in correct form:(modifications are not necessary)

Page 36: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

36

Grammar Construction

A

In grammar :G

Terminals:

PDA stack symbolsVariables:

a PDA input symbols

Start Variable: Stack bottom symbol#or $

Page 37: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

37

q 1qAa,PDA transition

Grammar production aA

Page 38: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

38

PDA transition

Grammar production mBBaBA 21

q 1qmBBBAa 21,

Page 39: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

39

nkk

mk XX

S

11

11

Grammarleftmost derivation

),,(

),,(

,$),(

2

111

111

q

XXq

q

mnk

nkk

PDA computation

Leftmostvariable

Page 40: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

40

Example PDA:

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Grammar: $0$ a000 aa1

$1$ b111 bb0 $

Page 41: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

41

abba

abba

abb

ab

a

$

$1

$

$0

$

GrammarLeftmostderivation:

PDAComputation:

),,(

,$),(

$)1,,(

,$),(

$)0,,(

,$),(

0

0

0

0

0

fq

q

aq

baq

bbaq

abbaq

Page 42: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

42

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

$Derivation:

a ab b Time 0

Page 43: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

43

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

$Derivation:

a ab b Time 1

Stack

$0

$0a

Page 44: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

44

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

$Derivation:

a ab b Time 2

Stack

$

$0a $ab

Page 45: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

45

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

$Derivation:

a ab b Time 3

Stack

$

$0a $ab

1

$1abb

Page 46: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

46

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Derivation:

a ab b Time 4

Stack

$

$ $0a $ab $1abb$abba

Page 47: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

47

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Derivation:

a ab b Time 5

Stack

empty

abba

$ $0a $ab $1abb$abba

Page 48: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

48

However, this grammar conversion does not work for all PDAs:

Ab,

0q fq

$$, Aa $, AAa

Ab,1q

$,

}1:{)( nbaML nn

Page 49: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

49

Ab,

0q fq

$$, Aa $, AAa

Ab,1q

$,

Grammar: $$ aA $aAAbA$

Page 50: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

50

Grammar: $$ aA $aAAbA$

Bad Derivation:

)($$$ MLaabaabaaAaAS

Page 51: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

51

The Correct Grammar Construction

)( jiAqq

In grammar :G

Terminals: Input symbols of PDA

PDA states

PDA stack symbol

Variables:

Page 52: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

52

q 1qAa,PDA transition

Grammar production aqAq )( 1

Page 53: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

53

PDA transition

Grammar production

)())(()( 1322211 mmmm qBqqBqqBqaqAq

q 1qmBBBAa 21,

For all possible states in PDA 12 ,, mqq

Page 54: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

54

Start Variable: )( foZqq

Stack bottom symbol

Start state accept state

#or $

Page 55: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

55

Example:

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

aqq )1( 00Grammar production:

Page 56: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

56

Example:

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

)$)(1(|)$)(1()$(

)$)(1(|)$)(1()$(

00000

00000000

fffff

ff

qqqqbqqqqbqq

qqqqbqqqqbqq

Grammar productions:

Page 57: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

57

Example:

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Grammar production: )$( 0 fqq

Page 58: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

58

)$)(1(|)$)(1()$(

)$)(1(|)$)(1()$(

00000

00000000

fffff

ff

qqqqbqqqqbqq

qqqqbqqqqbqq

)1)(1(|)1)(1()1(

)1)(1(|)1)(1()1(

00000

00000000

fffff

ff

qqqqbqqqqbqq

qqqqbqqqqbqq

)$)(0(|)$)(0()$(

)$)(0(|)$)(0()$(

00000

00000000

fffff

ff

qqqqaqqqqaqq

qqqqaqqqqaqq

Resulting Grammar: ablestart vari:)$( 0 fqq

Page 59: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

59

)0)(0(|)0)(0()0(

)0)(0(|)0)(0()0(

00000

00000000

fffff

ff

qqqqaqqqqaqq

qqqqaqqqqaqq

bqq

aqq

)0(

)1(

00

00

)$( 0 fqq

Page 60: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

60

)$( 0 fqq

)$)(0( 000 fqqqqa

)$( 0 fqqab)$)(1( 000 fqqqqabb

)$( 0 fqqabba

abba ),,(

,$),(

$)1,,(

,$),(

$)0,,(

,$),(

0

0

0

0

0

fq

q

aq

baq

bbaq

abbaq

GrammarLeftmostderivation

PDAcomputation

Page 61: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

61

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

)$( 0 fqqDerivation:

a ab b Time 0

Page 62: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

62

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

)$( 0 fqqDerivation:

a ab b Time 1

Stack

$0

)$)(0( 000 fqqqqa

Page 63: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

63

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

)$( 0 fqqDerivation:

a ab b Time 2

Stack

$

)$)(0( 000 fqqqqa )$( 0 fqqab

Page 64: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

64

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

)$( 0 fqqDerivation:

a ab b Time 3

Stack

$

)$)(0( 000 fqqqqa )$( 0 fqqab

1

)$)(1( 000 fqqqqabb

Page 65: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

65

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

)$( 0 fqqDerivation:

a ab b Time 4

Stack

$

)$)(0( 000 fqqqqa )$( 0 fqqab)$)(1( 000 fqqqqabb )$( 0 fqqabba

Page 66: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

66

$,0q fq

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

)$( 0 fqqDerivation:

a ab b Time 5

Stack

)$)(0( 000 fqqqqa )$( 0 fqqab)$)(1( 000 fqqqqabb )$( 0 fqqabba abba

empty

Page 67: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

67

In general:

wBAqq ji

)(If andOnly if

Grammar PDA

),,(),,( BqAwq ji

Page 68: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

68

Thus:

wqq f

)$( 0

If andOnly if

Grammargenerates PDA accepts

),,(,$),( 0 fqwq

w w

Page 69: 1 PDAs Accept Context-Free Languages. 2 Context-Free Languages (Grammars) Languages Accepted by PDAs Theorem:

69

Therefore:

For any PDAthere is a context-free grammarthat accepts the same language

Context-Free

Languages(Grammars)

LanguagesAccepted

byPDAs