Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Model of Compilation Natawut Nupairoj, Ph.D. Department of Computer Engineering Chulalongkorn University.

Similar presentations


Presentation on theme: "The Model of Compilation Natawut Nupairoj, Ph.D. Department of Computer Engineering Chulalongkorn University."— Presentation transcript:

1 The Model of Compilation Natawut Nupairoj, Ph.D. Department of Computer Engineering Chulalongkorn University

2 Outline Overview. Front-End  Lexical Analysis.  Syntactic Analysis.  Semantic Analysis. Back-End  Code Generation.  Code Optimization.

3 Overview Translate a “source” program (in language S) into an “equivalent” “object” program (in language O). Translator source program (S) object program (O) error messages

4 The Model of Compilation Reduce Complexity Source/Target Independent  Plug-able Compiler IR: contain sufficient information  tree-like structure the “syntax tree” or  Assembly-like format “three-address code”. Analysis (Front-End) Synthesis (Back-End) Intermediate Representation sourceobject

5 Front-End Lexical Analysis  group the input stream into tokens Syntactic Analysis  see if the source is “valid” or “correct” Contextual/Semantic Analysis  make sure the program is “meaningful” or semantically correct.

6 Front-End Components Scanner Source program (text stream) Parser Intermediate Representation (file or in memory) Semantic Analyzer Front-End Construct parse tree. Group token. next-token token Symbol Table main(){ Check semantic/contextual. identifier main symbol ( parse-tree

7 Lexical Analysis Scanner. Group the input stream into tokens  identifiers.  numbers.  keywords.  symbols & signs. Lexeme: Character sequence forming a token. Eliminate all blanks and comments.

8 position := initial + rate * 60 Example: Tokens 165342 7 1. identifier position 2. assignment symbol := 3. identifier initial 4. plus symbol + 5. identifier rate 6. muliplication symbol * 7. integer-literal 60

9 Syntax Analysis Parser. Check if the source is “grammatically” correct. Construct a parse tree.

10 Mini-Triangle Syntax single-Command ::=V-name := Expression |Identifier ( Expression ) |if Expression then single-Command else single-Command |while Expression do single-Command |let Declaration in single-Command |begin Command end

11 Mini-Triangle Syntax Expression::=primary-Expression |Expression Operator primary-Expression primary-Expression ::=Integer-Literal |V-name |Operator primary-Expression |( Expression ) V-name::=Identifier... Operator::=+ | - | * | / | | = | \

12 Example: Parse Tree

13 Semantic Analysis Make sure that the program is “meaningful”. Walk the parse tree to check  Type checking.  Type conversion. Example: rate * 60  rate is a real variable rate * inttoreal(60) Generate IR (can also done by parser).

14 Example of IR Abstract Syntax Tree (AST) position := initial + rate * 60 interior node = operation children = arguments leaves = identifiers or constants := position+ initial* rate60

15 Example of IR Three-Address Code tmp := rate * 60 tmp := initial + tmp position := tmp position := initial + rate * 60

16 Back-End Code Optimization  improve IR: machine-independent.  improve object code: machine-depedent.  optimizing compiler.  widely-used. Code Generation  generate object code.  assign memory/register locations.  instruction selection.

17 Front-End Components IR Optimizer Intermediate Representation (file or in memory) Code Generator Object code (assembly or binary) Peephole Optimizer Back-End Generate object code. Machine-independent optimization. IR Symbol Table Machine-dependent optimization Object code

18 Other Phases Symbol-Table Management  information about identifier being-used. name type scope  Scanner creates an entry into the table. Error Handler  what to do when found errors in the source.

19 Compiler-Construction Tools Parser generators.  Generate a parser from a CFG.  Yacc, Bison. Scanner generators.  Generate a scanner from regular expressions.  Lex, Flex.


Download ppt "The Model of Compilation Natawut Nupairoj, Ph.D. Department of Computer Engineering Chulalongkorn University."

Similar presentations


Ads by Google