Corso di Linguaggi di Programmazione
Calendario lezioni A.A. 2006/2007
N.B. il materiale è stato rimosso dal sito, ma è disponibile su richiesta, inviando una email ai docenti.
Data | Argomenti | Slide | Capitolo libro | Materiale 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.
Corso di Linguaggi
di Programmazione | Copyright © 2007