Calendario lezioni A.A. 2006/2007


N.B. il materiale è stato rimosso dal sito, ma è disponibile su richiesta, inviando una email ai docenti.
DataArgomentiSlide Capitolo libroMateriale integrativo
1 26.2.2007 Informazioni generali sulla struttura del corso e sulle modalità di esame; obiettivi: perchè studiare i linguaggi di programmazione; breve storia dell'evoluzione dei linguaggi di programmazione: FORTRAN, ALGOL e linguaggi imperativi, LISP ed i linguaggi funzionali, PROLOG ed i linguaggi dichiarativi ...; principali caratteristiche e criteri per la valutazione di un linguaggio di programmazione; i costi legati alla scelta di un linguaggio di programmazione. lez1 Sebesta Cap. 1 e 2, Ghezzi Jazayeri Cap. 1.4 e 1.5 -
2 27.2.2007 Controlli automatici di correttezza dei programmi: verificatore della terminazione di un programma e del corretto utilizzo degli indici in C; Macchine di Turing, Goedelizzazione e Turing-equivalenza; Funzioni parziali ricorsive, funzione parziale "inversione" e funzione "arresto"; tesi di Church lez2 - Dispense Calcolabilità (P. Bonatti) e Informatica teorica (S. Vigna)

3 5.3.2007 Sintassi dei linguaggi di programmazione: grammariche e BNF. Compilazione e interpretazione di un linguaggio di programmazione. lez3 Sebesta Cap. 3 -
4 6.3.2007 Fasi di un compilatore. Analisi lessicale e sintattica. Lex e Yacc (Flex e Bison). Semantica di un linguaggio. lez4 Sebesta Cap. 3 e 4 -
5 12.3.2007 Semantica assiomatica di un linguaggio di programmazione. lez5 Sebesta Cap. 3 -
6 13.3.2007 Nomi, variabili, associazioni (binding), campo di visibilità, tipi. Gestione della memoria. lez6 Sebesta Cap. 5 -
7 19.3.2007 Tipo di dato. Equivalenza e compatibilità tra tipi. Linguaggi fortemente tipati. lez7 Sebesta Cap. 6 -
8 20.3.2007 Abstract Data Types, esempio dello Stack lez8 Sebesta Cap. 11 tranne 11.5 (Ghezzi Jazayeri Cap. 5.1 e 5.2) ADT stack.
9 26.3.2007 Polimorfismo parametrico e ADT parametrici; programmazione orientata agli oggetti: introduzione, il meccanismo dei sottotipi e delle sottoclassi, implementazione di overriding ed ereditarietà singola e multipla, esempi. lez9 Sebesta Cap. 9.8, Cap 11.5 e parte Cap. 12 (Ghezzi Jazayeri Cap 6.1 - 6.3) Esempi: ADT con tipi parametrici, supporto alla programmazione ad oggetti.
10 27.3.2007 Programmazione orientata agli oggetti: binding dinamico, type checking e polimorfismo; membri statici. Supporto all'object orientation in C++, Java e C#. Generics e generic programming (cenni). lez10 Sebesta Cap. 12 (escluso 12.9) Esempi: programmazione ad oggetti . Tutorial su generics in Java ed in C sharp , ed un confronto.
11 16.4.2007 Supporto per la programmazione concorrente (prima parte). lez11 Sebesta Cap 13.1 - 13.3, 9.11
12 17.4.2007 Supporto per la programmazione concorrente (seconda parte). lez12 Sebesta Cap. 13.4 - 13.5 Esempi: concurrent Pascal , task e produttore - consumatore in ADA.
E1 23.4.2007 Esercitazioni sugli argomenti svolti nella prima parte del corso (parte I). es1 -
E2 24.4.2007 Esercitazioni sugli argomenti svolti nella prima parte del corso (parte II). -
13 07.5.2007 La programmazione concorrente in Java e C sharp, concorrenza a livello di istruzioni, High Performance Fortran (esempi). lez13 Sebesta Cap. 13.6 - 13.8 Esempi: Thread, sincronizzazione ed utilizzo di notify e notifyAll in Java.
14 8.5.2007 Gestione delle eccezioni. lez14 Sebesta Cap. 14 Esempi in Java.
15 14.5.2007 Programmazione funzionale. Introduzione a Scheme. lez15 Sebesta Cap. 15 Esempi.
16 15.5.2007 Scheme: definizione di funzioni, liste, forme speciali per il controllo di flusso. lez16 Sebesta Cap. 15 Esempi e esercizi da svolgere.
17 21.5.2007 Scheme: funzioni di ordine superiore, lambda-expression, input/output. lez17 Sebesta Cap. 15 Esempi e esercizi da svolgere.
18 22.5.2007 Programmazione dichiarativa, programmazione logica e programmazione in Prolog. Richiami di calcolo predicativo, algoritmo di resolution. Funzionamento di un interprete Prolog. L'ambiente SWI. lez18 Sebesta Cap. 16 (fino 16.6.5) Esempi AMPL e Prolog.
19 28.5.2007 (Esempio di funzionamento di un interprete.) Programmazione in Prolog: liste, ricorsione, pattern matching. Definizioni ricorsive ed implementazione Prolog di operazioni su liste, esercizi. lez19 - Alcuni esempi generici e di operazioni su liste.
20 29.5.2007 Programmazione in Prolog: controllo di tipi, variabili intere ed operatori aritmetici; invertibilità dei predicati; cut e problema della negazione; esercizi. lez20 Sebesta Cap 16.6.5 - 16.8 (escluso) Esempi; predicati per l'output a video.
L1 4.6.2007 Laboratorio: esercizi di programmazione in Scheme. lab1
L2 5.6.2007 Laboratorio: esercizi di programmazione in Prolog (ordinamento di liste).

Per favore, segnalate eventuali errori od omissioni nelle slide.