Compiler Development (CMPSC 401)
Janyl Jumadinova January 17, 2018
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 1 / 34
Compiler Development (CMPSC 401) Janyl Jumadinova January 17, 2018 - - PowerPoint PPT Presentation
Compiler Development (CMPSC 401) Janyl Jumadinova January 17, 2018 Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 1 / 34 What is a compiler? Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 2 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 1 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 2 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 3 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 4 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 5 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 6 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 7 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 7 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 7 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 8 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 8 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 8 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 8 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 9 / 34
1 Analysis 2 Synthesis Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 10 / 34
1 Analysis: determines the operations implied by the source program
2 Synthesis Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 11 / 34
1 Analysis: determines the operations implied by the source program
2 Synthesis: takes the tree structure and translates the operations
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 12 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 13 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 14 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 14 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 14 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 14 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 15 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 15 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 16 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 17 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 18 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 19 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 20 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 21 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 21 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 21 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 22 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 23 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 23 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 23 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 24 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 24 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 24 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 24 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 25 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 25 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 25 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 25 / 34
Building a symbol table Generating intermediate representations
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 26 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 27 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 28 / 34
bge a, 4, done mov 5, b done: // done!
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 28 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 29 / 34
Loop interchange, parallelization Operates at level of AST, or even source code
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 29 / 34
Loop interchange, parallelization Operates at level of AST, or even source code
Dead code eliminations, common sub-expressions eliminations Operates on IR
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 29 / 34
Loop interchange, parallelization Operates at level of AST, or even source code
Dead code eliminations, common sub-expressions eliminations Operates on IR
Strength reduction, constant folding Operates on small sequences of instructions
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 29 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 30 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 31 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 32 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 33 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 34 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 34 / 34
Janyl Jumadinova Compiler Development (CMPSC 401) January 17, 2018 34 / 34