Languages, Compilers and Interpreters (Cod. 653AA)

Corso di Laurea Magistrale in Informatica

a.a. 2023-24

Teacher:  Roberta Gori, Francesco Gavazzo


Class Schedule :

Tuesday 9-11 L1

Thursday 11-13 L1 (LAB)

Friday 9-11 L1


Link to the Team

Link


Slides of the Course

A brief Introduction to the course

Regular Grammars, Deterministic Automata, Non Deterministic Automata

Automata with epsilon transitions, Regular Expressions.

DFA Minimization, Pumping Lemma.

Context free Languages, Pushdown Automata, Chomsky's Hierarchy.

Lexical Analysis

Introduction to Parsing, Precedence and Ambiguity of Grammars

Predictive Parsing, LL(k) Grammars, Computation of the set Fist() and Follow()

Bottom-up parsing

Action and GOTO Table Construction

Context Sensitive Analysis Attribute Grammar

The Procedure Abstraction

Introduction to Code generation and Code shape: Expression and case command

Code Shape: array, boolean and Control Flow

Optimization: loop unrolling

Data-Flow Analyses: Live Variables

Fixpoint Theory

Data-Flow Analyses: Available Definitions and Reaching Expressions

Static Analysis and Abstract Interpretation

A gentle introduction to abstract interpretation

Abstract interpretation: the formal definitions

Local Register Allocation

Global Register Allocation


Program of the course



The Book


Suggested material for exploring specific topics