Giorno | Ore | Aula*** | L/E** | Argomento | Riferimenti*
|
---|
Mar 1/10
| 8-10
| w
| L
| Introduzione al corso. Concetto di
algoritmo. Cenni ai diversi paradigmi di
programmazione. I concetti di sintassi e
semantica dei linguaggi di
programmazione. Alfabeti \Lambda, stringhe,
operazioni sulle stringhe, linguaggi come
sottoinsiemi di \Lambda^*.
| Sint: 1--4
|
Mar 1/10
| 15-17
| w
| L
| Automi deterministici. Principio di
induzione. Esempi di induzione. Automi
non deterministici
| Sint: 5--10
|
Mer 2/10
| 11-13
| w
| L
| Equivalenza di automi. Algoritmo di costruzione dei sottoinsiemi
| Sint: 10--13
|
Mer 2/10
| 17-19
| w
| E
| Scrivere
automi che accettano un dato linguaggio. Scrivere il linguaggio accettato
da un automa dato. Applicazione dell'algoritmo di costruzione dei sottoinsiemi.
| Sint: 1--13
|
Gio 3/10
| 10-12
| w
| L
| Recupero.Dimostrazione
della correttezza dell'algoritmo della costruzione dei sottoinsiemi. Esempio
di dimostrazione per induzione nel lemma della dimostrazione. Cenno sulla
minimizzazione. | Sint: 13--16
|
Ven 4/10
| 8-10
| w
| E
| Recupero.Definizioni induttive. Automi(come sopra).
| Sint: 1--16
|
Lun 7/10 -- Mer 9/10
| -
| -
| -
| 6 Lezioni saltate. Ero all'estero.
| -
|
Lun 14/10
| 11-13
| w
| L
| Grammatiche
libere dal contesto. Terminologia e notazione. Esempi: parentesi bilanciate,
espressioni aritmetiche, comandi base del Pascal. Definizione induttiva del
linguagio generato da una grammatica. | Sint: 17--25
|
Lun 14/10
| 15-17
| w
| E
| Esercizi sugli automi(come sopra). Data una grammatica, scrivere il linguaggio generato e viceversa.
| Sint: 1--25
|
Mar 15/10
| 8-10
| w
| L
| Alberi
di derivazione. Costruzione induttiva degli alberi di derivazione. Corrispondenza
tra stringhe e alberi di derivazione di una grammatica. Ambiguità e progetto
di grammatiche. Grammatica non ambigua per le espressioni aritmetiche.
| Sint: 25--36
|
Mar 15/10
| 15-17
| w
| E
| Automi(come sopra). Grammatiche(come sopra). Ambiguità e disambiguazione.
| Sint: 1--36
|
Mar 15/10
| 17-19
| w
| E
| Recupero.Automi(come sopra). Grammatiche(come sopra). Ambiguità e disambiguazione.
| Sint: 1--36
|
Mer 16/10
| 11-13
| w
| L
| Algoritmo
per costruire, dato un automa, una grammatica equivalente. Dimostrazione
della non regolarità del linguaggio {a^nb^n | n ≥ 0}. Applicazione degli
automi e delle grammatiche ai compilatori. Schema generale di un compilatore.
| Sint: 37--40 Sint':6--8
|
Mer 16/10
| 17-19
| w
| E
| Automi(come sopra). Grammatiche(come sopra). Ambiguità e disambiguazione.
| Sint: 1--40
|
Lun 21/10
| 11-13
| w
| L
| Formalizzazione
dei concetti visti sugli automi: automa, cammini e linguaggio accettato.
Formalizzazione dei concetti visti sulle grammatiche: grammatica, derivazioni,
linguaggio generato. Disambiguazione del costrutto condizionale if-then-else
annidato. | Sint':1--6 Sint':7--11
|
Lun 21/10
| 15-17
| w
| E
| Automi(come sopra). Grammatiche(come sopra). Costruzione di grammatiche a partire da automi.
| Sint:1--40 Sint':1--11
|
Mar 22/10
| 8-10
| w
| L
| Definizione di sistema di transizioni. Configurazioni. Configurazioni finali e bloccate. Esempi.
| Sem: 1--5
|
Mar 22/10
| 15-17
| w
| -
| Lezione persa: aula occupata dal test di Inglese
| -
|
Mer 23/10
| 11-13
| w
| L
| Sistema
di transizioni per la somma di numeri naturali. Configurazioni. Sottosistema
per la somma di cifre con riporto. Regole condizionali per definire la relazione
di transizione ->_n+ | Sem: 5--10
|
Mer 23/10
| 17-19
| w
| -
| Lezione persa: sospensione lezioni per "Festa della Matricola"
| -
|
Lun 28/10
| 11-13
| w
| -
| Lezione persa: mancanza di corrente ad Ascoli
| -
|
Lun 28/10
| 15-17
| w
| L
| Esempi
di derivazioni e sottoderivazioni con il sistema per la somma di numeri naturali.
Differenza tra valori semantici e loro rappresentazioni. Funzione di valutazione
e di rappresentazione. | Sem: 10--12
|
Lun 28/10
| 17-19
| A
| L+E
| Recupero.
Stili di definizione della relazione di transizione con le regole: big-step
e small-step. Sistema di transizioni big-step per il calcolo del valore di
una espressione aritmetica semplice. Esercitazione: definizione di sistemi
di transizioni per associare un valore semantico a semplici stringhe di un
linguaggio con grammatica data. | Sem: 1--16
|
Mar 29/10
| 8-10
| w
| L
| Sistema
di transizioni per calcolare il valore delle espressioni aritmetiche complete
con parentesi. Esempi di derivazioni. Introduzione dello stato nella sua
forma più semplice: funzione da identificatori in valori. Espressioni con
identificatori. Regole per la semantica di espressioni in uno stato.
| Sem: 16--21
|
Mar 29/10
| 15-17
| w
| E
| Definizione
di sistemi di transizioni small-step o big-step per associare una certa semantica
a stringhe di un linguaggio con grammatica data. | Sem: 1--21
|
Mar 29/10
| 17-19
| w
| E
| Recupero.Definizione
di sistemi di transizioni small-step o big-step per associare una certa semantica
a stringhe di un linguaggio con grammatica data. | Sem: 1--21
|
Mer 30/10
| 11-13
| w
| L
| Stato
come pila di frames. Esempi. Modifica delle regole per la semantica delle
espressioni. Modifica dello stato come pila di frames. Grammatica delle espressioni
Java (anche con valori booleana). | Sem: 21--25
|
Mer 30/10
| 17-19
| w
| E
| Definizione
di sistemi di transizioni small-step o big-step per associare una certa semantica
a stringhe di un linguaggio con grammatica data. Derivazioni del sistema
di transizioni per la semantica delle espressioni con stato. | Sem: 1--25
|
Lun 4/11
| 11-13
| -
| -
| Lezione persa: sospensione delle lezioni per chiusura collegi ERSU
| -
|
Lun 4/11
| 15-17
| -
| -
| Lezione persa: sospensione delle lezioni per chiusura collegi ERSU
| -
|
Mar 5/11
| 8-10
| w
| L
| Semantica
operazionale delle espressioni aritmetiche e booleane di Java. Sintassi dei
comandi di base di Java. Semantica dell'assegnamento. Semantica dell'if e del while. Problemi di non terminazione del while e sua trattazione semantica.
| Sem: 25--31
|
Mar 5/11
| 15-17
| w
| L
| Semantica
dei blocchi. Dimostrazione di equivalenza con la semantica operazionale.
Equivalenza forte (per ogni stato). Equivalenza debole(ipotesi sugli stati).
| Sem: 31--34
|
Mar 5/11
| 17-19
| w
| E
| Derivazioni con sottoderivazioni del sistema per la semantica dei comandi. Esempi di while e if. Dimostrazioni di equivalenza forte e debole. Definizione delle regole per la semantica di nuovi comandi.
| Sem: 1--34
|
Mer 6/11
| 11-13
| w
| L
| Sintassi
e semantica delle dichiarazioni di variabili intere e booleane in Java. Ridefinizione
della semantica dei blocchi e scope delle varibili nei blocchi annidati.
Esempi. | Sem: 35--39
|
Mer 6/11
| 15-17
| A
| E
| Recupero. Definizione delle regole per la semantica di nuovi comandi. Dimostrazioni di equivalenza di comandi.
| Sem: 1--39
|
Mer 6/11
| 17-19
| w
| E
| Definizione delle regole per la semantica di nuovi comandi. Dimostrazioni di equivalenza di comandi.
| Sem: 1--39
|
Lun 11/11
| 11-13
| w
| L
| Introduzione
alla programmazione a oggetti in Java: concetti di oggetto, classe, variabili
istanza, riferimenti a oggetti e heap. Domini semantici per la definizione
della semantica delle classi e degli oggetti. Nuovo stato: tripla di ambiente
delle classi, pila di frame e heap. Sintassi del Java semplificato. Esempi
di programmi. | Sem: 40--44
|
Lun 11/11
| 15-17
| w
| E
| Rappresentazione grafica dello stato in diversi punti di un dato programma.
| Sem: 1--44
|
Mar 12/11
| 8-10
| w
| L
| Ridefinizione
delle regole di semantica operazionale di espressioni e comandi per trattare
il nuovo tipo di stato (tripla). Regole di semantica operazionale per la
costruzione dell'ambiente delle classi. Esempi e rappresentazione grafica
dell'ambiente delle classi. | Sem: 44--46
|
Mar 12/11
| 15-17
| w
| -
| Lezione persa: scambio con Analisi. Recupero Ven 15/11
| -
|
Mar 12/11
| 17-19
| w
| E
| Semantica
operazionale di nuovi costrutti (comandi, dichiarazioni e altro). Dimostrazioni
di equivalenza con la semantica operazionale. Derivazioni con sottoderivazioni
ad albero. | Sem: 1--46
|
Mer 13/11
| 11-13
| w
| L
| Semantica
operazionale della creazione di oggetti e dichiarazioni di variabili riferimento
(con o senza inizializzazione). Semantica operazionale dei nuovi casi sintattici
di comandi ed espressioni. Concetto di metodo. Sintassi delle dichiarazioni
di metodi. Esempi. Regole di semantica operazionale per la costruzione dell'ambiente
dei metodi e sua rappresentazione grafica. | Sem: 46--50
|
Mer 13/11
| 17-19
| w
| E
| Rappresentazione
grafica dello stato globale in diversi punti di un programma. Definizione
delle regole di semantica operazionale per nuovi costrutti che coinvolgono
oggetti e classi. | Sem: 46--50
|
Ven 15/11
| 10-12
| w
| L
| Lezione di recupero: scambio con Analisi del 12/11.Semantica della chiamata di metodi. Esempi. Trattazione dei metodi ricorsivi. Esempi.
| Sem: 50--57
|
Lun 18/11
| 11-13
| w
| L
| Array
in Java. Dichiarazione di variabili riferimento ad array di tipo base o riferimento
a oggetto (con o senza inizializzazione). Esempi. Costrutto for e suo uso tipico con gli array.
| Sem': 1--11
|
Lun 18/11
| 15-17
| w
| E
| Rappresentazione
grafica dello stato globale in diversi punti di un programma che contiene
chiamate di metodi (anche ricorsivi). Definizione delle regole di semantica
operazionale per nuovi costrutti che coinvolgono anche oggetti e classi.
| Sem: 1--57
|
Mar 19/11
| 8-10
| w
| L
| Esempi di programmi che usano il costrutto for con array.Schemi di programmi: ricerca lineare certa e incerta. Esempi ed esempi di varianti.
| Sem': 1--11
|
Mar 19/11
| 15-17
| w
| L
| Sintassi
e semantica informale della dichiarazione dei metodi a più parametri e che
restituiscono un valore. Esempi. Commenti nel codice. Scrittura di programmi
funzionanti per la sdk della Sun. Uso del compilatore e delle utility di
documentazione. | Sem': 11--22
|
Mar 19/11
| 17-19
| w
| E
| Recupero.
Scrittura di metodi che operano su array. Definizione delle regole di semantica
operazionale per nuovi costrutti. Rappresentazione grafica dell'ambiente
delle classi e dello stato in diversi punti di un programma dato.
| Sem:1--57 Sem': 1--22
|
Mer 20/11
| 11-13
| w
| L
| Cenni sull'ereditarietà in Java. Esempio di sottoclasse. Ridefinizione dei metodi. Cenni sul polimorfismo.
| Sem': 22--26
|
Mer 20/11
| 15-17
| w
| E
| Recupero.
Scrittura di metodi che operano su array. Definizione delle regole di semantica
operazionale per nuovi costrutti. Rappresentazione grafica dell'ambiente
delle classi e dello stato in diversi punti di un programma dato.
| Sem:1--57 Sem': 1--26
|
Mer 20/11
| 17-19
| w
| E
| Scrittura di metodi che operano su array. Definizione delle regole di semantica operazionale per nuovi costrutti.
| Sem:1--57 Sem': 1--26
|