Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
sav08:compiler [2008/02/18 17:10] vkuncak created |
sav08:compiler [2008/02/20 10:24] (current) vkuncak |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Compilers and Their Role in Software Analysis and Verification ====== | ====== Compilers and Their Role in Software Analysis and Verification ====== | ||
+ | |||
+ | Recall the big picture in [[Verification as Science]]. What is the role of the compiler? | ||
Compiler is the closest relative of a program analysis and verification system: they both manipulate programs taking into account the meaning of statement constructs. | Compiler is the closest relative of a program analysis and verification system: they both manipulate programs taking into account the meaning of statement constructs. | ||
Line 7: | Line 9: | ||
* tokenization (lexical analysis) | * tokenization (lexical analysis) | ||
* parsing (syntax analysis) | * parsing (syntax analysis) | ||
- | * | + | * creating abstract syntax trees |
+ | * resolving identifiers | ||
+ | * translation to intermediate form | ||
- | Compiler front end (tokenization, parsing, creating abstract synresolving identifiers, | + | Differences in goals: |
+ | * compiler generates executable object code | ||
+ | * analyzer answers questions about the source code | ||
+ | |||
+ | Natural way of integrating them: | ||
+ | * perform front-end operations | ||
+ | * ask analyzer: is program meaningful? | ||
+ | * try to optimize the code, ask analyzer: do conditions that enable optimization hold? | ||
+ | * perform code generation | ||
=== More on Compilers === | === More on Compilers === | ||
- | * [[http://infowww.epfl.ch/imoniteur_ISAP/!itffichecours.htm?ww_i_matiere=1770703&ww_x_anneeAcad=2007-2008&ww_i_section=249847&ww_i_niveau=6683147&ww_c_langue=en|Advanced compiler's course at EPFL]] | + | * [[http://infowww.epfl.ch/imoniteur_ISAP/!itffichecours.htm?ww_i_matiere=1770703&ww_x_anneeAcad=2007-2008&ww_i_section=249847&ww_i_niveau=6683147&ww_c_langue=en|Advanced Compiler Construction]] course at EPFL this semester |
+ | * [[Compiler Textbooks]] |