Compilers - PowerPoint PPT Presentation

About This Presentation
Title:

Compilers

Description:

Not reachable from S. Useless Production. 31. In general: If. Then variable is useful ... reachable from S. Final Grammar. 38. Nullable Variables. Nullable ... – PowerPoint PPT presentation

Number of Views:21
Avg rating:3.0/5.0
Slides: 49
Provided by: costas
Learn more at: http://www.cs.rpi.edu
Category:

less

Transcript and Presenter's Notes

Title: Compilers


1
Compilers

2
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
3
Compiler
Lexical analyzer
parser
input
output
machine code
program
4
A parser knows the grammar of the programming
language
5
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
6
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
7
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
8
derivation tree
E
machine code

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

2
5
9
Parsing

10
Parser
input string
derivation
grammar
11
Example
Parser
derivation
input
?
12
Exhaustive Search
Phase 1
Find derivation of
All possible derivations of length 1
13
(No Transcript)
14
Phase 2
Phase 1
15
Phase 2
Phase 3
16
Final result of exhaustive search
(top-down parsing)
Parser
input
derivation
17
Time complexity of exhaustive search
Suppose there are no productions of the form
Number of phases for string
18
For grammar with rules
Time for phase 1
possible derivations
19
Time for phase 2
possible derivations
20
Time for phase
possible derivations
21
Total time needed for string
phase 1
phase 2w
phase 2
Extremely bad!!!
22
There exist faster algorithms for specialized
grammars
S-grammar
symbol
string of variables
appears once
Pair
23
S-grammar example
Each string has a unique derivation
24
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
25
For general context-free grammars
There exists a parsing algorithm that parses a
string in time
26
Simplifications of Context-Free Grammars

27
A Substitution Rule
Equivalent grammar
Substitute B
28
In general
Substitute B
equivalent grammar
29
Useless Productions
30
Another grammar
Not reachable from S
31
In general
If
Then variable is useful
Otherwise, variable is useless
32
A production is useful if all its
variables are useful
33
Removing Useless Productions
Example Grammar
34
First
find all variables that produce strings with only
terminals
Round 1
Round 2
35
Keep only the variables that produce terminal
symbols
36
Second
Find all variables reachable from
Dependency Graph
not reachable
37
Keep only the variables reachable from S
Final Grammar
38
Nullable Variables
Nullable Variable
39
Removing Nullable Variables
Example Grammar
Nullable variable
40
Final Grammar
Substitute
41
Unit-Productions
Unit Production
42
Removing Unit Productions
Observation
Is removed immediately
43
Example Grammar
44
Substitute
45
Remove
46
Substitute
47
Remove repeated productions
Final grammar
48
Removing All
  • Step 1 Remove Nullable Variables
  • Step 2 Remove Unit-Productions
  • Step 3 Remove Useless Variables
Write a Comment
User Comments (0)
About PowerShow.com