Linguaggi di Programmazione e Laboratorio

LAUREA in MATEMATICA

Università di Pisa
Anno Accademico 2015-16
docenti: proff. Marco Bellia, Vincenzo Ciancia


Guida allo studio del materiale. La partecipazione alla lezione è il primo fondamentale passo per lo studio del corso e del materiale relativo. La lezione infatti, introduce e discute, in modo conveniente, il materiale selezionato per lo studio degli argomenti trattati e, fornisce indicazioni su letture complementari per un loro possibile approfondimento.
Il passo successivo è la revisione individuale del contenuto delle slide presentate. Questa revisione deve essere condotta prima della successiva lezione e deve consistere nel ri-considerare ogni affermazione e formula ed esempio, contenuti, e motivare ciascuno di questi utilizzando le parti del testo indicato (e riportato nel diario delle attività, sotto). In questa revisione anche le letture complementari possono risultare utili.
Ultimata questa revisione, occorre considerare e risolvere tutti gli esercizi proposti: Si può usare questa attività come base per riflettere su quanto studiato e sfidarsi sulla soluzione di problemi più complessi di quelli proposti.
Infine, occorre annotare ogni domanda o dubbio emersi e usare il ricevimento per discuterli con i docenti durante la settimana.


Mercoledì 24/2 Presentazione; Programmi di un LP, Funzioni Calcolabili. Introduzione ed Esercizi per lunedì
Venerdì 26/2 Attività di Laboratorio Annullata
lunedì 29/2 Esercizi del 24/2. Linguaggi, Programmi, Algoritmi Slides Esercizio
Martedì 1/3

Linguaggi, Macchine Astratte, Implementazione.
Interprete: Proprietà e Uso. Compilatore: Proprietà e Uso.

Slides Cap.1 [GM]
Mercoledì 2/3 Definizione Formale di LP. Sintassi, Grammatiche.
Ambiguità: Derivazione su stringhe e su alberi
Slides Cap.2 ed Esercizi [GM]
Venerdì 4/3 Attività di Laboratorio Annullata
Lunedì 7/3 Esercizi listingC listingPascal
Martedì 8/3 Completata presentazione di mercoledì 2/3 Slides del 2/3 + TranslationPhases
Mercoledì 9/3 Proprietà contestuali eAnalisi Statica. Semantica Denotazionale e Operazionale. Semantica SOS di un semplice linguaggio Slides(cap.2[GM]) Esercizi per lunedì 14
Venerdì 11/3 Attività di Laboratorio Annullata
Lunedì 14/3 Esercizio: Programma Deriva su Parse Tree Un Programma quasi completo (da completare)
Martedì 15/3 Fondamenti: Semidecidibilità. Lambda Calcolo. Logica Combinatoria Cap.3, Cap11.6[GM]+Slides
Mercoledì 16/3 Strutture di RTS: Ambiente, Memoria. Scope, Activation Record Cap.4-5[GM] Slides
Venerdì 18/3 Presentazione e prime attività
Lunedì 21/3 Esercizi su gramatiche, semantica, Lambda Calcolo, Logica Combinatoria Testo2 NuovaDiscussione2 Listings2
Martedì 22/3 Controllo di Sequenza: Espressioni e Comandi. Tail Recursion Cap.6[GM] Slides(1-21)
Mercoledì 23/3 Memoization. Programmazione Strutturata: Fasi e Vincoli Slides(22-fine)
Venerdì 25/3 Vacanza Accademica
Lunedì 28/3 Festa Nazionale
Martedì 29/3 Vacanza Accademica
Mercoledì 30/3 Vacanza Accademica
Venerdì 1/4 Attività di Laboratorio Annullata
Lunedì 4/4 Esercizi su gramatiche, semantica, Lambda Calcolo, programmazione con moduli e controllo di AR nella ricorsione Testo3 Discussione3 Listings3
Martedì 5/4 Astrazioni di Controllo. Trasmissione. Eccezioni. Cap.7[GM] Slides
Mercoledì 6/4 Dati, Tipi e Tipi Astratti Cap.8[GM] Slides, Cap.9.1-2[GM] Slides
Venerdì 8/4 Presentazione e prime attività
Lunedì 11/4

Esercizi su Gramatiche, Semantica, Astrazioni di Controllo e Tipi Astratti

Testo+Discussione
Martedì 12/4 Tipi Astratti: Funzione AF e Invariante I. ADT e Moduli Cap9[GM] 5.5-6-7[LK] Slides
Mercoledì 13/4 Linguaggi OO: Classi, Oggetti, Entità statiche e dinamiche, ADT, ereditarità singola e multipla. Istallare JDK. Cap10.1-2[GM] Slides
Venerdì 15/4 OCAML
Lunedì 18/4 Esercizi: Astrazioni di Controllo, ADT e Uso di Java Testo5+Soluzioni Listings5
Martedì 19/4 Java: Programmazione in piccolo Slides
Mercoledì 20/4 Java: Inheritance, Shadowing, Overriding, Late Binding, Overloading Cap10.3.0[GM] Slides
Venerdì 22/4 OCAML
Lunedì 25/4 Festa Nazionale
Martedì 26/4 Java: Eccezioni e Interfacce slides(1-12)
Esercizi Listings (aggiornati)
Mercoledì 27/4 Java: Programmazione in grande. Packages, Modificatori. ADT Cap10.4.2[GM] slides del 26/4
Venerdì 29/4 Laboratorio
Lunedì 2/5 Esercizi: Astrazioni di Controllo, ADT e Tipi Polimorfismi Testo6 Listings6
Martedì 3/5 ADT in Java: Condizione di Non Esposizione, muPairADTCheating.java. Vector<T> Slides muPairADTCheating.java.zip Vector
Mercoledì 4/5 LinkedList<T>, equaivalenza di tipi. Metodi additional: equals, clone, toString Slides ImPairADTX.java.zip LinkedList
Venerdì 6/5 Laboratorio
Lunedì 9/5 Esercizi: Metodi additional in Mutable e Immutable Testo7 Listings7
Martedì 10/5 Linguaggi Funzionali: Principi Cap11[GM] slides
Mercoledì 11/5 OCaml: Survey, API e ADT Survey, Relazione
Venerdì 13/5 Laboratorio
Lunedì 16/5 Mutable e Immutable in Java e OCaml Testo8, SoluzioneEx1
Martedì 17/5 API: Valore Astratto e Specifica Operazioni slides
Mercoledì 18/5 Riuso: Interno, Esterno, Meccanismi, Studio di Caso slides, AltriEsercizi9.pdf, AltriEsercizi9listings.zip
Venerdì 20/5 Laboratorio Soppressa per Adesione Sciopero Nazionale Ricerca
Lunedì 23/5 Riuso: Valori Mutable in Java MuRelazioneJAPI,MurelazioneADTX,MainMuRelazioneADTX in AltriEsercizi9listings.zip del 18/5
Martedì 24/5 Riuso: Estensione Valori Mutable ADT, Caso di uso
Mercoledì 25/5 Riuso: Valori Immutable RelazioneJAPI, RelazioneADTX, ImmPairADTX
ParseTree in Java (vedi Lunedi 30 pv)
Venerdì 27/5 Laboratorio
Lunedì 30/5 Esercizi: ParseTree in Java AltriEsercizi10.pdf, AltriEsercizi10listings.zip (aggiornati)
Martedì 31/5 Esercizi: ParseTree in OCaml Esercizio2 di AltriEsercizi10.pdf e listings allegati (vedi sopra)
svolto-in-aula, discusso-in-aula
Consigliato preparazione scritto: Esercizio3
Giovedi 16/6 Appello: scritto Prima Prova Preliminare
AULA L - ORA 9:30
Testo - - Soluzione - - Comunicazioni
Martedì 28/6 Prova Finale
AULA L - ORA 9:30
Lunedi 25/7 Appello: Prova Preliminare
AULA L - ORA 9:30
Testo - - Soluzione - - Comunicazioni
Martedì 27/7 Prova Finale
AULA L - ORA 9:30
Venerdi 16/9 Appello: Prova Preliminare
Studio prof. M.Bellia - ORA 9:30
Nota: iscrizione chiusa