Advanced Compilers (2013/2014)

Course code
4S000557
Name of lecturers
Isabella Mastroeni, Alessandra Di Pierro
Coordinator
Isabella Mastroeni
Number of ECTS credits allocated
6
Academic sector
INF/01 - INFORMATICS
Language of instruction
Italian
Period
II semestre dal Mar 3, 2014 al Jun 13, 2014.

Lesson timetable

II semestre
Day Time Type Place Note
Tuesday 11:30 AM - 1:30 PM lesson Lecture Hall G  
Friday 2:30 PM - 4:30 PM lesson Lecture Hall C  

Learning outcomes

The course aims to deepen advanced subjects concerning compilers and static analysis. In particular the objective is that of providing advanced techniques for transforming programs with the aim, not only of obtaining standard optimization of code, but also of protecting code by hiding information or discovering vulnerabilities.

Syllabus

- Introduction
- Mathematical foundations
- Lattice theory
- Abstract interpretation
- Control Flow Graphs (CFG)
- Basic compiler and optimization
- Algorithmic approaches to optimization
- CFG based approaches
- Dominance
- Avoiding redundance
- Available expressions
- Solving data-flow problems
- Monotonic analyses framework
- Formal framework
- Fix-point computations
- MOP and least solution
- Example
- Data-flow analysis
- Very busy expression
- Liveness analysis and optimization
- Copy propagation analysis and optimization
- Constant folding and reaching definition analyses
- Interval analysis
- Alias analysis
- Optimization
- Single static assignment (SSA)
- Constant propagation (with SSA)
- Code motion
- Partial redundancy elimination
- Probabilistic static analysis