Compilation Techniques (4 Credits)
Learning Outcomes:
Understanding of the challenges involved in compilation (semantic gap between input and output languages, compiler efficiency and code quality); Understanding of the phases involved in compilation, and knowledge of the techniques applied; Ability to understand design decisions in modern compilers and to justify these; Ability to develop and apply modifications to standard compilation techniques wherever this is necessary; Ability to analyze compilation tasks and to apply standard compilation techniques; Ability to implement standard compilation algorithms and understanding of the challenges involved in compilation for modern architectures and the approaches taken in modern compilers
Topics:
- Introduction: structure of a compiler
- Lexical analysis: tokens, regular expressions, Lex
- Parsing: context-free grammars, predictive and LR parsing, Yacc
- Abstract syntax: semantic actions, abstract parse trees
- Semantic analysis: symbol tables, bindings, type-checking
- Stack frames: representation and abstraction
- Intermediate code: representation trees, translation
- Basic blocks and traces: canonical trees and conditional branches
- Instruction selection: algorithms for selection, RISC and CISC
- Liveness analysis: solution of dataflow equations
- Register allocation: colouring by simplification, coalescing
- Advanced Topics: automatic parallelization, popular open-source compilers: GCC, LLVM
Published at :
SOCIAL MEDIA
Let’s relentlessly connected and get caught up each other.
Looking for tweets ...