LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI E MACCHINE ASTRATTE

IL LINGUAGGIO CAMPIONE

Funzionale

Funzioni con un parametro

Scoping statico

LE SEMANTICHE "ESEGUIBILI"

Arricchimento dei costrutti (dalle espressioni pure al letrec)

Raffinamento delle semantiche (dalla denotazionale all'interprete dettagliato)

IL FRAMMENTO CON ESPRESSIONI PURE

Semantica denotazionale

Semantica operazionale (prim'ordine)

Interprete (operazionale iterativa)

UN FRAMMENTO DI LINGUAGGIO IMPERATIVO

(Opera e proprieta' di studenti)

Semantica denotazionale ed operazionale

Semantica denotazionale con procedure ricorsive

IL FRAMMENTO CON FUNZIONI

Semantica denotazionale

Semantica operazionale

Interprete

IL LINGUAGGIO COMPLETO (con Let e Letrec)

Si puo' usare una semantica concreta OCAML, racchiudendo le applicazioni tra parentesi: i programmi possono essere eseguiti sia direttamente in CAML, che attraverso le semantiche che seguono, dopo aver generato la sintassi astratta opportuna.

Parser e pretty-printer

Semantica denotazionale

Semantica operazionale

Interprete

Implementazione al prim'ordine dell'ambiente (catena statica)

L'ESTENSIONE CON IL PASSAGGIO PER NOME

Semantica denotazionale

Semantica operazionale

IL LINGUAGGIO COMPLETO CON SCOPING DINAMICO (senza Letrec)

Semantica denotazionale

Semantica operazionale

Interprete

Implementazione al prim'ordine dell'ambiente (deep binding)

TIPI DI DATO ASTRATTI IN CAML (Moduli e classi)

Specifica e implementazione degli stack mutabili con i moduli

Implementazione degli stack mutabili con le classi

ANALISI STATICHE

PROGRAMMI ESEMPIO

Esempi

LA SEMANTICA COLLECTING

Domini sintattici

Domini semantici (concreti)

Strutture a run time

Interprete collecting

L'INTERPRETE ASTRATTO PER L'ANALISI DEI NOMI

Domini semantici (astratti)

Interprete astratto

Interprete astratto completo

L'INTERPRETE ASTRATTO PER L'ANALISI DEI TIPI

L'unificazione

I tipi

Domini semantici (astratti)

Interprete astratto

Interprete astratto completo

L'INTERPRETE ASTRATTO PER DETERMINARE LA DIMENSIONE DELLE PILE DI TEMPORANEI LOCALI

Domini astratti ed interprete astratto

L'INTERPRETE COMPLETO CON ANALISI

Interprete

L'INTERPRETE DA SPECIALIZZARE

Interprete

IL RISULTATO DELLA SPECIALIZZAZIONE

Run-time support

Il codice compilato per fact