Simplifications of Context-Free Grammars - PowerPoint PPT Presentation

About This Presentation
Title:

Simplifications of Context-Free Grammars

Description:

Title: Languages and Finite Automata Author: Costas Busch Last modified by: admin Created Date: 8/31/2000 1:12:33 AM Document presentation format – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 77
Provided by: Cost92
Learn more at: http://www.cs.rpi.edu
Category:

less

Transcript and Presenter's Notes

Title: Simplifications of Context-Free Grammars


1
Simplifications of Context-Free Grammars

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
16
Another grammar
Not reachable from S
17
contains only terminals
In general
if
then variable is useful
otherwise, variable is useless
18
A production is useless if any of
its variables is 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
(the rest variables are useless)
Remove useless productions
22
Second
Find all variables reachable from
Use a Dependency Graph
not reachable
23
Keep only the variables reachable from S
(the rest 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 FormsforContext-free Grammars

26
Chomsky Normal Form
Each productions has form
or
variable
variable
terminal
27
Examples
Chomsky Normal Form
Not Chomsky Normal Form
28
Convertion 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 doesnt
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 doesnt
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
Greinbach Normal Form
All productions have form
symbol
variables
40
Examples
Greinbach Normal Form
Not Greinbach Normal Form
41
Conversion to Greinbach Normal Form
Greinbach Normal Form
42
Theorem
For any context-free grammar (which doesnt
produce ) there is an equivalent grammar in
Greinbach Normal Form
43
Observations
  • Greinbach normal forms are very good
  • for parsing
  • It is hard to find the Greinbach normal
  • form of any context-free grammar

44
Compilers

45
Machine Code
Program
Add v,v,0 cmp v,5 jmplt ELSE THEN add x,
12,v ELSE WHILE cmp x,3 ...
v 5 if (vgt5) x 12 v while (x !3)
x x - 3 v 10 ......
Compiler
46
Compiler
Lexical analyzer
parser
input
output
machine code
program
47
A parser knows the grammar of the programming
language
48
Parser
PROGRAM STMT_LIST STMT_LIST STMT
STMT_LIST STMT STMT EXPR IF_STMT
WHILE_STMT
STMT_LIST EXPR EXPR EXPR EXPR - EXPR
ID IF_STMT if (EXPR) then STMT
if (EXPR) then STMT else STMT WHILE_STMT
while (EXPR) do STMT
49
The parser finds the derivation of a particular
input
derivation
Parser
input
E gt E E gt E E E gt 10 EE gt
10 2 E gt 10 2 5
E -gt E E E E INT
10 2 5
50
derivation tree
derivation
E
E gt E E gt E E E gt 10 EE gt
10 2 E gt 10 2 5

E
E
10
E
E

2
5
51
derivation tree
E
machine code

E
E
mult a, 2, 5 add b, 10, a
10
E
E

2
5
52
Parsing

53
Parser
input string
derivation
grammar
54
Example
Parser
derivation
input
?
55
Exhaustive Search
Phase 1
Find derivation of
All possible derivations of length 1
56
(No Transcript)
57
Phase 2
Phase 1
58
Phase 2
Phase 3
59
Final result of exhaustive search
(top-down parsing)
Parser
input
derivation
60
Time complexity of exhaustive search
Suppose there are no productions of the form
Number of phases for string
61
For grammar with rules
Time for phase 1
possible derivations
62
Time for phase 2
possible derivations
63
Time for phase
possible derivations
64
Total time needed for string
phase 1
phase 2w
phase 2
Extremely bad!!!
65
There exist faster algorithms for specialized
grammars
S-grammar
symbol
string of variables
appears once
Pair
66
S-grammar example
Each string has a unique derivation
67
For S-grammars
In the exhaustive search parsing there is only
one choice in each phase
Time for a phase
Total time for parsing string
68
For general context-free grammars
There exists a parsing algorithm that parses a
string in time
(we will show it in the next class)
69
The CYK Parser
70
The CYK Membership Algorithm
Input
  • Grammar in Chomsky Normal Form
  • String

Output
find if
71
The Algorithm
Input example
  • Grammar
  • String

72
(No Transcript)
73
(No Transcript)
74
(No Transcript)
75
(No Transcript)
76
Therefore
Time Complexity
Observation
The CYK algorithm can be easily converted to a
parser (bottom up parser)
Write a Comment
User Comments (0)
About PowerShow.com