Languages, Compilers and Interpreters (Cod. 653AA)

Corso di Laurea Magistrale in Informatica

a.a. 2022-23

Teacher:  Roberta Gori, Letterio Galletta

y

Class Schedule from the 26th of September:

Monday 14-16 L1

Thuesday 14-16 C1

Friday 9-11 L1


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

Ad-hoc syntax directed Translation.

Intermediate Representations

The Procedure Abstraction

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

Code Shape: array, boolean and Control Flow

Optimization: value numbering and loop unrolling

Data-Flow Analyses: Live Variables

Fixpoint Theory

Data-Flow Analyses: Available Definitions and Reaching Expressions

Static Analyses

Abstract Interpretation with widenings (Corrected version with the right abstraction on the sign domain without 0.)

Local Register Allocation

Global Register Allocation


Program of the course



The Book


Suggested material for exploring specific topics