Presentation is loading. Please wait.

Presentation is loading. Please wait.

Compiler Construction 1. Objectives Given a context-free grammar, G, and the grammar- independent functions for a recursive-descent parser, complete the.

Similar presentations


Presentation on theme: "Compiler Construction 1. Objectives Given a context-free grammar, G, and the grammar- independent functions for a recursive-descent parser, complete the."— Presentation transcript:

1 Compiler Construction 1

2 Objectives Given a context-free grammar, G, and the grammar- independent functions for a recursive-descent parser, complete the recursive-descent parser by adding the grammar-dependent functions. Given naive intermediate code for a C loop, hand-optimize the code, reducing by at least 20% the number of intermediate code instructions needed while maintaining semantic correctness of the program. Define "register assignment" in the context of a compiler. Explain why register assignment is an important compiler optimization. 2

3 Compiler Tasks 3 Source Lexor Intermediate ParserOptimizer Tokens Intermediate Assembler or Binary or Source Code Generation

4 CFGs: Example Simplified description of English grammar: G = S  NP VP NP  N | Adj NP N  car | dog Adj  big | green VP  V | V NP V  is | eats Example derivation: S  G NP VP  G Adj NP VP  G Adj N VP  G Adj N V  G Adj N eats  G big N eats  G big dog eats 4 Production form: LHS = variable. RHS = string of variables and/or terminals.

5 CFGs: Formal Definition G = (V, , P, S) V= variablesa finite set  = alphabet or terminalsa finite set P= productionsa finite set S= start variableS  V Productions ’ form, where A  V,  (V  ) * : A   5

6 CFGs: Example 1 {a n b n | n  0} S   | a S b Formally: G = ({S}, {a,b}, {S  , S  a S b}, S) 6

7 CFGs & CFLs: Example 2 all strings of balanced parentheses A core idea of most programming languages. 7 P   | ( P ) | P P

8 CFGs: Example 2 Language of Assignment Statements P  S P P  S S  id = E; E  expressions (expressions left as “ exercise ” ) 8

9 Example Languages Set of strings over {a,b} with an even number of a ’ s Arithmetic expressions using +, *, /, -, (,) Assume that all operands are called “ id ” 9

10 Recursive Descent Parser Built from a context-free grammar Simple rules build recursive program Grammar independent part (see pdf file) Grammar dependent – Include a function for each non-terminal (lhs) – Generate code for each rule, left to right “ Call ” non-terminals “ Match ” terminals Use if statement to choose between multiple rules with the same lhs (non-terminal) symbol 10


Download ppt "Compiler Construction 1. Objectives Given a context-free grammar, G, and the grammar- independent functions for a recursive-descent parser, complete the."

Similar presentations


Ads by Google