Linguaggi di Programmazione e Laboratorio

LAUREA in MATEMATICA

Università di Pisa
Anno Accademico 2017-18
docente: prof. Marco Bellia


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, formulazione 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 ancora 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.


< > > >
Martedì 27/2 Presentazione del corso. Principi di Calcolabilità: Funzioni Calcolabili e Programmi Presentazione Lezione1
Mercoledì 28/2 Calcolabilità, Algoritmi e L. di Programmazione. Lezione2
Giovedì 1/3 ANNULLATA
Venerdì 2/3 Laboratorio Uso delle Macchine, Esercizi LaboratorioA1 ListingL1.zip
Martedì 6/3

Classi di L.P e Applicazioni: Discussione ed Esercizi

EserciziL1 EserciziL2(solo Testo)
Mercoledì 7/3 Macchina Astratta: Struttura e Realizzazione.
Interprete, Compilatore: Proprietà
Lezione3 EserciziL3
Giovedì 8/3 Interprete, Compilatore: Confronti, Front-End, RTS
Sintassi: Gramatiche, Derivazione, Ambiguità
Lezione4
Venerdì 9/3 Laboratorio Sintassi Concreta e Astratta: Discussione LaboratorioA2 ListingA2.1.zip ListingA2.2.zip
Martedì 13/3 Completamenti ed Esercizi Lezione4 ed Esercizi EserciziL4
Mercoledì 14/3 Semantica: Denotazionale, Operazionale e SOS Lezione4
Giovedì 15/3 Decidibilità. Modelli di Calcolo: Lambda Calcolo Lezione5 Parte1
Venerdì 16/3 Laboratorio Definiamo SmallC: Sintassi, Semantica Laboratorio1
Martedì 20/3 Completamenti ed Esercizi Macchina a Stato Dcl.zip
Mercoledì 21/3 Ambiente: Binding, Scope. Memoria: Statica, Dinamica Lezione6
Giovedì 22/3 Memoria Statica, Dinamica. Un caso in C EserciziL6
Venerdì 23/3 Laboratorio Dichiarazioni in C e OCaml1 Laboratorio2 OCaml1.zip
Martedì 27/3 Controllo di Sequenza, Ricorsione, Tail Recursion e Memoization. Lezione7 ListingL7.zip
Mercoledì 28/3

Astrazioni di Controllo: Trasmissione per Valore, Costante, Reference, Risultato, Valore-Risultato, Nome, di Funzione. Higher Order

Lezione8
Giovedì 29/3 Eccezioni Completamento Lezione8
Venerdì 30/3 Interruzione Accademica 2018
Martedì 3/4 Interruzione Accademica 2018
Mercoledì 4/4 Dati, Tipi di Dato, Tipi. Union in C e record con varianti. Lezione9
Giovedì 5/4 Tipi Algebrici, Patterns e Pattern-Matching Completamento Lezione9 EserciziL9
Venerdì 6/4 Laboratorio: Sintassi Astratta in OCaml e Tests di Comportamento Laboratorio:Raccomandazione Laboratorio3(aggiornato) Oggi.ml(aggiornato) EserciziLab3-2To5.ml
Martedì 10/4 Programmazione Strutturata: QuickSort in OCaml Completamento Lezione7 ListingL9.zip
Mercoledì 11/4 Tipi Astratti Lezione10
Giovedì 12/4 Tipi Astratti: AF. I. Moduli Completamento Lezione10
Venerdì 13/4 Laboratorio: Env&Store, Semantica dcl, Implementazione Oggi Oggi.zip Laboratorio4
Martedì 17/4

Completamenti ed Esercizi: Printf, 'a option, Implentazione Tipi Astratti

Slides
Mercoledì 18/4 Linguaggi Object Oriented Lezione11
Giovedì 19/4 Java: Programmazione in Piccolo. Identificatori, Scalari, Strutturati, Espressioni, Comandi Lezione12Parte1
Venerdì 20/4 Laboratorio: Semantica dcl ed Exp. Implementazione

Laboratorio5

Martedì 24/4 Java: Rappresentazione Interna di Classi, Oggetti, Metodi, AR. Applichiamo all'esecuzione di un programma. Lezione12 (Parte2)
Mercoledì 25/4 Festa Nazionale
Giovedì 26/4 Ricevimento in Aula L Esercizi (soluzioni discusse ed esercizi da completare)
Venerdì 27/4 Ricevimento in Aula M Esercizi (soluzioni discusse ed esercizi da completare) listings.zip (allegati)
Martedì 1/5 Festa Nazionale
Mercoledì 2/5 Linguaggi Object Oriented: Java Basic 2 Lezione13 (senza esercizi)
Giovedì 3/5 Java. Esercizi: Computazione, Stack, Heap D2PointEx2.pdf
Venerdì 4/5 Laboratorio: Sviluppo di Codice Sviluppo1.pdf Allegati.zip
Martedì 8/5 Tipi di Dato Concreti in Java e OCaml Lezione14
Mercoledì 9/5 Linguaggi Object Oriented: Java Basic 3 Lezione15
Giovedì 10/5 Java: Esercizi vedi STACKS.zip in Laboratorio
Venerdì 11/5 Laboratorio: Sviluppo di Codice STACKS.zip
Martedì 15/5 Completamenti ed Esercizi Lezione16
Mercoledì 16/5 ADT: Mutable. Esposizione dello stato. Equivalenza di Tipi Lezione16
Giovedì 17/5 Java Additionals: equals, clone, toString, elements Lezione17
Venerdì 18/5 Laboratorio: Sviluppo di Codice MuTree.zip
Martedì 22/5 metodo elements(). Studio di un Caso di Polimorfismo Lezione18 (Parte1)
Mercoledì 23/5 Linguaggi Funzionali: Principi Lezione19
Giovedì 24/5 Completamenti : API<T> in Java, Higher Order in Ocaml Lezione18(completa) Lezione19
Venerdì 25/5 Laboratorio:: Sviluppo di Codice Pack25-5-18.zip(agg*1)
Martedì 29/5 Completamenti ed Esercizi: Riuso e Analisi di un caso Lezione20
Mercoledì 30/5 Esercizi: Riuso in OCaml QueueV1.mlEsercizi.ml
Giovedì 31/5 Esercizi: Riuso in OCaml
Venerdì 1/6 Esercizi: Estensioni in Ocaml e Java Pack1-6-18.zip
Martedì 5/6 Esercizi di venerdi ReadMeFirst.pdf Pack5-6-18.zip
Lunedì 11/6 Altri Esercizi AltriEsercizi11-6-18.pdf
Lunedi 18 Giugno Appello: Prova Preliminare
AULA E1 - ORA 9:00
Annullato
Lunedi 25 Giugno Appello Straordinario: Prova Preliminare
AULA L - ORA 9:00
Iscrizione
Testo.doc Allegati.doc Soluzione.txt
Mercoledi 27 Giugno Prova Finale
AULA Seminari Est (Informatica) - ORA 9:00
Esito Comunicato
Lunedi 2 Luglio Prova Finale
AULA Seminari Est (Informatica) - ORA 9:00
Esito Comunicato
Mercoledi 18 Luglio Appello: Prova Preliminare
AULA E1 - ORA 9:00
Iscrizione Obbligatoria
Testo.pdf Allegati.pdf Soluzione.pdf
Lunedi 23 Luglio Prova Finale
AULA Seminari Est (Informatica) - ORA 15:00
Esito Comunicato
Mercoledi 5 Settembre Appello: Prova Preliminare
AULA E1 - ORA 9:00
Iscrizione Obbligatoria
Testo.doc Allegati.doc Soluzione.pdf
Mercoledi 12 Settembre Prova Finale
AULA Seminari Est (Informatica) - ORA 09:00
Esito Comunicato
Prova Finale
AULA - ORA
Mercoledi 19 Settembre Appello: Prova Preliminare
AULA E1 - ORA 9:00
Iscrizione Obbligatoria
Testo Allegati Soluzione
Prova Finale
AULA - ORA
Lunedi 12 Novembre Appello: Prova Preliminare
AULA E1 - ORA 16:00
Iscrizione Obbligatoria
Testo Allegati Soluzione.pdf
Giovedi 15 NovembreProva Finale
AULA Studio Bellia (in Dipartimento di Informatica) - ORA 16:00
Esito Comunicato
Mercoledi 09 Gennaio Appello: Prova Preliminare
AULA P1 - ORA 09:00
Iscrizione Obbligatoria
Testo.pdf Allegato.pdf Soluzione.pdf
Lunedi 14 GennaioProva Finale
AULA P1 - ORA 16:30
Esito Comunicato
Mercoledi 30 Gennaio Appello: Prova Preliminare
AULA P1 - ORA 09:00
Iscrizione Obbligatoria
Prova Finale
AULA - ORA


(agg*1). Aggiornamento contenente l'API dei valori Queue e correzioni nel QueuePack originariamente distribuito (riguardanti l'overriding del metodo clone()).