Presentation is loading. Please wait.

Presentation is loading. Please wait.

Courtesy Costas Busch - RPI1 Context-Free Languages.

Similar presentations


Presentation on theme: "Courtesy Costas Busch - RPI1 Context-Free Languages."— Presentation transcript:

1 Courtesy Costas Busch - RPI1 Context-Free Languages

2 Courtesy Costas Busch - RPI2 Regular Languages

3 Courtesy Costas Busch - RPI3 Regular Languages Context-Free Languages

4 Courtesy Costas Busch - RPI4 Context-Free Languages Pushdown Automata Context-Free Grammars stack automaton

5 Courtesy Costas Busch - RPI5 Context-Free Grammars

6 Courtesy Costas Busch - RPI6 Example A context-free grammar : A derivation:

7 Courtesy Costas Busch - RPI7 A context-free grammar : Another derivation:

8 Courtesy Costas Busch - RPI8

9 9 A context-free grammar : A derivation: Example

10 Courtesy Costas Busch - RPI10 A context-free grammar : Another derivation:

11 Courtesy Costas Busch - RPI11

12 Courtesy Costas Busch - RPI12 A context-free grammar : A derivation: Example

13 Courtesy Costas Busch - RPI13 A context-free grammar : A derivation:

14 Courtesy Costas Busch - RPI14

15 Courtesy Costas Busch - RPI15 Definition: Context-Free Grammars Grammar Productions of the form: is string of variables and terminals VariablesTerminal symbols Start variables

16 Courtesy Costas Busch - RPI16 Notation: Context-Free Grammars Lower case letters near beginning of alphabet (e.g. a, b, c, …) are terminal symbols Upper case letters near beginning of alphabet (e.g. A, B, C, …) are variables Lower case letters near end of alphabet (e.g. w, x, …) are strings of terminals Upper case letters near end of alphabet (e.g. X, Y, …) are either terminals or strings Lower case Greek letters (e.g. α, β, γ, …) are strings of terminals and/or variables

17 Courtesy Costas Busch - RPI17 Definition: Context-Free Languages A language is context-free if and only if there is a grammar with

18 Courtesy Costas Busch - RPI18 Recall Language of a Grammar For a grammar with start variable : String of terminals

19 Courtesy Costas Busch - RPI19 Derivation Order Leftmost derivation: Rightmost derivation:

20 Courtesy Costas Busch - RPI20 Leftmost derivation: Rightmost derivation:

21 Courtesy Costas Busch - RPI21 Derivation Trees

22 Courtesy Costas Busch - RPI22

23 Courtesy Costas Busch - RPI23

24 Courtesy Costas Busch - RPI24

25 Courtesy Costas Busch - RPI25

26 Courtesy Costas Busch - RPI26 Derivation Tree

27 Courtesy Costas Busch - RPI27 yield Derivation Tree

28 Courtesy Costas Busch - RPI28 Partial Derivation Trees Partial derivation tree

29 Courtesy Costas Busch - RPI29 Partial derivation tree

30 Courtesy Costas Busch - RPI30 Partial derivation tree sentential form yield

31 Courtesy Costas Busch - RPI31 Same derivation tree Sometimes, derivation order doesn’t matter Leftmost: Rightmost:

32 Courtesy Costas Busch - RPI32 Ambiguity

33 Courtesy Costas Busch - RPI33 leftmost derivation

34 Courtesy Costas Busch - RPI34 leftmost derivation

35 Courtesy Costas Busch - RPI35 Two derivation trees

36 Courtesy Costas Busch - RPI36 The grammar is ambiguous: stringhas two derivation trees

37 Courtesy Costas Busch - RPI37 stringhas two leftmost derivations The grammar is ambiguous:

38 Courtesy Costas Busch - RPI38 Definition: A context-free grammar is ambiguous if some string has: two or more derivation trees

39 Courtesy Costas Busch - RPI39 In other words: A context-free grammar is ambiguous if some string has: two or more leftmost derivations (or rightmost)

40 Courtesy Costas Busch - RPI40 Why do we care about ambiguity? take

41 Courtesy Costas Busch - RPI41

42 Courtesy Costas Busch - RPI42

43 Courtesy Costas Busch - RPI43 Correct result:

44 Courtesy Costas Busch - RPI44 We want to remove ambiguity Ambiguity is bad for programming languages

45 Courtesy Costas Busch - RPI45 We fix the ambiguous grammar: New non-ambiguous grammar:

46 Courtesy Costas Busch - RPI46

47 Courtesy Costas Busch - RPI47 Unique derivation tree

48 Courtesy Costas Busch - RPI48 The grammar : is non-ambiguous: Every string has a unique derivation tree

49 Courtesy Costas Busch - RPI49 Inherent Ambiguity Some context free languages have only ambiguous grammars Example:

50 Courtesy Costas Busch - RPI50 The string has two derivation trees


Download ppt "Courtesy Costas Busch - RPI1 Context-Free Languages."

Similar presentations


Ads by Google