Compilatori avanzati (2013/2014)

Codice insegnamento
4S000557
Docenti
Isabella Mastroeni, Alessandra Di Pierro
Coordinatore
Isabella Mastroeni
crediti
6
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Periodo
II semestre dal 3-mar-2014 al 13-giu-2014.

Orario lezioni

II semestre
Giorno Ora Tipo Luogo Note
martedì 11.30 - 13.30 lezione Aula G  
venerdì 14.30 - 16.30 lezione Aula C  

Obiettivi formativi

Gli obiettivi formativi di questo corso consistono nell'approfondire argomenti avanzati inerenti i compilatori e l'analisi statica con lo scopo di comprendere in modo più approfondito tecniche avanzate di trasformazione di programmi, il cui intento non è necessariamente quello classico di ottimizzare il codice, ma anche quello più di frontiera che consiste nel proteggerlo nascondendo informazione o scoprendo vulnerabilità.

Programma

- Introduzione al corso
- Fondamenti matematici
- Teoria dei reticoli
- Interpretazione astratta
- Control flow graphs (CFG)
- Compilazione e ottimizzazione
- Approcci algoritmici per l'ottimizzazione
- Approcci basati su CFG
- Dominanza
- Eliminazione di ridondanze
- Espressioni disponibili
- Risolvere problemi di Data-flow
- Approccio basato su analisi monotone
- Framework formale
- Computazione di punti fissi
- MOP e minima soluzione
- Esempio di analisi
- Data-flow analisi
- Analisi Very-busy expression
- Analisi e ottimizzazioni di liveness
- Analysi e ottimizzazioni copy propagation
- Analisi di propagazione delle costanti e reaching definitions
- Analisi degli intervalli
- Analisi di alias
- Ottimizzazione
- Single static assignment (SSA)
- Propagazione delle costanti con SSA
- Code motion
- Partial redundancy elimination
- Analisi statica probabilistica

Modalità d'esame

Progetto (approfondimento su uno degli argomenti del corso) + Presentazione