Programmazione (9 CFU) - Registro delle lezioni

Docente: Luca Tesei

Indirizzo e-mail: tesei@di.unipi.it
Home Page: http://www.di.unipi.it/~tesei/

Registro delle lezioni

Nella tabella che segue sono indicate tutte le lezioni svolte (e anche quelle non svolte con relativi recuperi). Per ogni lezione sono indicati gli argomenti trattati e dei riferimenti alle dispense che riguardano quegli argomenti.
GiornoOreAula***L/E**ArgomentoRiferimenti*
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

* In questa colonna sono indicate le pagine delle dispense che corrispondono agli argomenti trattati a lezione e/o esercitazione. Sint si riferisce alla dispensa di Sintassi. Sint' si riferisce al supplemento della dispensa di Sintassi. Sem si riferisce alla dispensa di Semantica e Sem' si riferisce al supplemento della dispensa di Semantica.
** L= Lezione --- E = Esercitazione
*** L'aula w è l'aula A del dipartimento di Scienza della Terra alias il Laboratorio di Informatica SdT.
Ritorna alla pagina del corso
Luca Tesei
Last modified: Sun Nov 24 19:14:16 CET 2002