Presentation is loading. Please wait.

Presentation is loading. Please wait.

Context-Free Languages

Similar presentations


Presentation on theme: "Context-Free Languages"— Presentation transcript:

1 Context-Free Languages
Simplifications of Context-Free Languages

2 A Substitution Rule equivalent grammar Substitute

3 A Substitution Rule Substitute equivalent grammar

4 In general: Substitute equivalent grammar

5 Nullable Variables Nullable Variable:

6 Removing Nullable Variables
example Grammar: Nullable variable

7 Final Grammar Substitute

8 Unit-Productions Unit Production: (a single variable in both sides)

9 Removing Unit Productions
Observation: Is removed immediately

10 example Grammar:

11 Substitute

12 Remove

13 Substitute

14 Remove repeated productions
Final grammar

15 Useless Productions Useless Production
Some derivations never terminate...

16 Another grammar: Useless Production Not reachable from S

17 then variable is useful
In general: contains only terminals if then variable is useful otherwise, variable is useless

18 A production is useless
if any of its variables is useless Productions useless Variables useless

19 Removing Useless Productions
example Grammar:

20 First: find all variables that can produce strings with only terminals
Round 1: Round 2:

21 Keep only the variables that produce terminal symbols:
(other variables are useless) Remove useless productions

22 Second: Find all variables reachable from Use a Dependency Graph not

23 Keep only the variables reachable from S
(other variables are useless) Final Grammar Remove useless productions

24 Removing All Step 1: Remove Nullable Variables Step 2: Remove Unit-Productions Step 3: Remove Useless Variables

25 Normal Forms for Context-free Grammars

26 Chomsky Normal Form each productions has form: or variable variable
terminal

27 examples: Chomsky Normal Form Not Chomsky Normal Form

28 Conversion to Chomsky Normal Form
example: Not Chomsky Normal Form

29 Introduce variables for terminals:

30 Introduce intermediate variable:

31 Introduce intermediate variable:

32 Final grammar in Chomsky Normal Form:
Initial grammar

33 In general: From any context-free grammar (which doesn’t produce ) not in Chomsky Normal Form we can obtain: An equivalent grammar in Chomsky Normal Form

34 The Procedure First remove: Nullable variables Unit productions

35 Then, for every symbol : Add production In productions: replace with New variable:

36 Replace any production
with New intermediate variables:

37 Theorem: For any context-free grammar (which doesn’t produce )
there is an equivalent grammar in Chomsky Normal Form

38 Observations Chomsky normal forms are good
for parsing and proving theorems It is very easy to find the Chomsky normal form for any context-free grammar

39 exercise Find CNF for this grammar: S -> 0A0 | 1B1 | BB A -> C
B -> S | A C -> S | epsilon (exercise 7.1.3, Hopcroft, Motwani, Ullman)

40 Greibach Normal Form All productions have form: symbol variables

41 examples: Greibach Normal Form Not Greibach Normal Form

42 Conversion to Greibach Normal Form:

43 Theorem: For any context-free grammar (which doesn’t produce )
there is an equivalent grammar in Greibach Normal Form

44 Observations Greibach normal forms are very good for parsing
For many context-free grammars, it's hard to find the Greibach normal form.

45 Why? Try to find Greibach normal form for grammar in CNF exercise ...


Download ppt "Context-Free Languages"

Similar presentations


Ads by Google