1 context-free languages. 2 regular languages 3 context-free languages

43
1 Context-Free Languages

Post on 21-Dec-2015

256 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

1

Context-Free Languages

Page 2: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

2

Regular Languages

}{ nnba }{ Rww

Page 3: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

3

Regular Languages

}{ nnba }{ Rww

Context-Free Languages

Page 4: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

4

Context-Free Languages

PushdownAutomata

Context-FreeGrammars

stack

automaton

Page 5: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

5

Context-Free Grammars

Page 6: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

6

A context-free grammar G:

S

aSbS

aaabbbaaaSbbbaaSbbaSbS

Page 7: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

7

S

aSbS

}0:{)( nbaGL nn

(((( ))))

Page 8: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

8

A context-free grammar G:

S

bSbS

aSaS

abaabaabaSabaabSbaaSaS

Page 9: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

9

S

bSbS

aSaS

}{)( RwwGL

Page 10: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

10

A context-free grammar G:

S

SSS

aSbS

abababaSb

abSaSbSaSbSSSS

Page 11: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

11

S

SSS

aSbS

}prefixany

),()(

),()(:{)(

v

vnvn

wnwnwGL

ba

ba

() ((( ))) (( ))

Page 12: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

12

Definition of Context-Free Grammars

Any grammar G=(V,T,S,P)

P: production rules of the form

V: variablesT: terminal symbolsS: start variable

xA

x: string of variables and terminals

Page 13: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

13

Definition of Context-Free Languages

A language L is context-free

if and only if

there is a grammar G with L = L(G)

Page 14: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

14

Derivation Order ABS .1

aabaaBbaaBaaABABS54321

aabaaAbAbABbABS32541

A

aaAA

.3

.2

B

BbB

.5

.4

Leftmost derivation:

Rightmost derivation:

Page 15: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

15

Derivation Trees

Page 16: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

16

ABS |aaAA |BbB

ABS

S

BA

Page 17: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

17

ABS |aaAA |BbB

aaABABS

S

BA

a a A

Page 18: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

18

ABS |aaAA |BbB

aaABbaaABABS

S

BA

a a A B b

Page 19: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

19

ABS |aaAA |BbB

aaBbaaABbaaABABS

S

BA

a a A B b

Page 20: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

20

ABS |aaAA |BbB

aabaaBbaaABbaaABABS

S

BA

a a A B b

Derivation Tree

Page 21: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

21

S

BA

a a A B b

aabaaBbaaABbaaABABS

yield

aab

baa

sentence

Derivation Tree

Page 22: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

22

Partial Derivation Trees

ABS

S

BA

Partial derivation tree

ABS |aaAA |BbB

Page 23: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

23

aaABABS

S

BA

a a A

Partial derivation tree

sententialform

yield

aaAB

Page 24: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

24

aabaaBbaaBaaABABS aabaaAbAbABbABS

S

BA

a a A B b

Same Derivation Tree

Often, derivation order doesn’t matter

Page 25: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

25

Ambiguity

Page 26: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

26

aEEEEEE |)(||

aaa

E

EE

EE

a

a a

aaaEaa

EEaEaEEE

*

Page 27: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

27

aEEEEEE |)(||

aaa

E

EE

a a

EE a

aaaEaa

EEaEEEEEE

Page 28: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

28

E

EE

a a

EE a

E

EE

EE

a

a a

aEEEEEE |)(||

aaa

Page 29: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

29

The grammar

aEEEEEE |)(||

is ambiguous:

string aaa has two derivation trees

Page 30: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

30

The grammar aEEEEEE |)(||

is ambiguous:

string aaa has two leftmost derivations

aaaEaa

EEaEEEEEE

aaaEaa

EEaEaEEE

*

Page 31: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

31

In general:

A context-free grammar is ambiguous

if some string has:

two or more derivation trees

G

)(GLw

Page 32: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

32

In other words:

A context-free grammar is ambiguous

if some string has:

two or more leftmost derivations

G

)(GLw

rightmost

Page 33: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

33

Why do we care about ambiguity?

E

EE

a a

EE a

E

EE

EE

a

a a

aaa

take 2a

Page 34: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

34

E

EE

EE

E

EE

EE

222

2

2 2 2 2

2

Page 35: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

35

E

EE

EE

E

EE

EE

6222

2

2 2 2 2

2

8222

4

2 2

2

6

2 2

24

8

Page 36: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

36

E

EE

EE

6222

2

2 2

4

2 2

2

6

The right solution:

Page 37: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

37

We want to remove the ambiguity

Ambiguity is bad for programming languages

Therefore:

Page 38: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

38

We fix the ambiguous grammar:

aEEEEEE |)(||

New grammar:

aF

EF

FT

FTT

TE

TEE

)(

Page 39: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

39

aF

EF

FT

FTT

TE

TEE

)(

aaaFaaFFa

FTaTaTFTTTEE

E

E T

T F

F

a

T

F

a

a

aaa

Page 40: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

40

E

E T

T F

F

a

T

F

a

a

aaa

Unique derivation tree

Page 41: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

41

The grammar

aF

EF

FT

FTT

TE

TEE

)(

Is not ambiguous

Page 42: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

42

Inherent Ambiguity

Some context free languageshave only ambiguous grammars

Example: }{}{ mmnmnn cbacbaL

||11

aAbA

AcSS

||22

bBcB

BaSS

21 | SSS

Page 43: 1 Context-Free Languages. 2 Regular Languages 3 Context-Free Languages

43

The string nnn cba

has two derivation trees

S

1S

S

2S

1S c 2Sa