Linguaggi di Programmazione e Laboratorio

LAUREA in MATEMATICA

Università di Pisa
Anno Accademico 2018-19
docente: prof. Marco Bellia, dott.ssa Francesca Pistolato


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ì 26/2 Presentazione del corso. Principi di Calcolabilità: Funzioni Calcolabili e Programmi Presentazione Lezione1
EserciziLezione1
[GM] Cap.1
Mercoledì 27/2 Linguaggi di Programmazione: Macchina Astratta, Funzione Universale. Classificazione e Spettro Lezione2 EserciziLezione2
[GM] Cap.1 e Cap.13
Giovedì 28/2 Macchina Astratta: Struttura e Realizzazione. Interprete, Compilatore, Macchine virtuali Lezione3 Esercizi3Lezione3
[GM] Cap.1
Venerdì 28/2 Laboratorio: A1. Uso Strumenti, Esercizi di Espressivita' LaboratorioA1 Listings01-03-19.zip
Martedì 05/3 Completamento Lezione3. Esercizi
Mercoledì 06/3 Lessico, Sintassi, Grammatiche. Lezione4:Parte1 [GM] Cap.2
Giovedì 07/3 Sintassi Astratta, AST. Semantica SOS. Lezione4:Parte2 [GM] Cap.2
Venerdì 8/3 Laboratorio: A2. Sintassi Concreta in C LaboratorioA2 Listing3.zip
Martedì 12/3 Sintassi, Semantica: Esercizi EserciziVari
CastEAllocazione.zip
Mercoledì 13/3 Decidibilita' e Modelli di Calcolo: Lambda-Calcolo Lezioni5(Parte1) [GM] Cap.3
Giovedì 14/3 Modelli di Calcolo: Macchina a Stati Lezioni5(Parte2)
Venerdì 15/3 Laboratorio: A3.Sintassi Astratta in C LaboratorioA3 UnionEx.c ParseTreeEDeriva.zip
Sviluppo.zip
Martedì 19/3 Modelli di Calcolo: Esercizi
Ambiente, Memoria, AR
EserciziVari(5bis,7,7bis)
Lezione6(parte1)[GM]Cap.4
Mercoledì 20/3 AR: Struttura e Proprieta`
Ciclo Interpretativo di AM a Stack di AR
Lezione6(parte2)[GM]Cap.5
Giovedì 21/3 Controllo di Sequenza nei L. Prescritti
Linguaggi Funzionali: Principi
Contr. di Seq. (parte1) [GM]Par6.1-6.3
L.F.: Principi [GM]Par11.1-11.2
Venerdì 22/3 Laboratorio: Sincronizzazione Codice di LaboratorioA3
Linguaggio SmallC: Sinatassi Astratta
Strumenti. OCaml: Istalazione e Uso
Avviso
LaboratorioA3.zip
Laboratorio1.pdf
OCamlLab1.ml
Martedì 26/3 OCaml: Termini, Patter, Costrutti match_with e function SAT Ocaml del Lambda Calcolo: tipi
SAT Ocaml Lambda Calcolo: operazioni
SAT Ocaml del Lambda Calcolo: test
Esercizio
Mercoledi 27/3 Controllo: Comandi. Blocchi: Stack di AR
Controllo di Sequenza [GM]Cap.6
Giovedi 28/3 Astrazioni di Controllo: Procedure, Funzioni e Trasmissione Valore, Costante, Reference, Nome, Funzione. Higher Order AstrazionidiControllo [GM]Cap.7
Rinviata a Martedi 2/4
Venerdì 29/3 Laboratorio: SmallC: Implementazione SAT ed operazioni associate Laboratorio2.pdf
SmallC.ml
Martedi 02/4 Astrazioni di Controllo: Lezione non svolta Giovedi 28/3 Materiale di giovedi 28/03 [GM]Cap.7
Mercoledi 03/4 Dati, Tipi di Dato, Tipi. Tipi Union e Tipi Algebrici Lezione9 [GM]Cap.8
Giovedi 04/4 SmallC: Semantica SOS, Stato e Dichiarazioni
Venerdì 05/4 Laboratorio SmallC: Semantica SOS, Stato, Store, Env Laboratorio3.pdf
SmallC.ml (aggiornato)
Martedi 09/4 Esercizi: I tipi store e env di SmallC, Trasmissione SmallC
SoluzioneEx1
SoluzioneEx2
SoluzioneEx3
Trasmissione: value, reference
Mercoledi 10/4 Tipi di Dato Astratto Lezione10 [GM]Cap.9
Giovedi 11/4 Tipi Astratti mediante Moduli e Classi Lezione10 (aggiornata) [GM]Cap.9
Venerdì 05/4 Laboratorio SmallC: Semantica SOS, Stato, Dichiarazioni Laboratorio4.pdf SmallC.ml (aggiornato)
Soluzione.ml
Martedi 16/4 Annulata: Indisponibilta Aula
Mercoledì 17/4 Linguaggi Object Oriented Lezione11[GM]Cap.10
Giovedì 18/4 Java: Programmazione Procedurale Lezione12 (aggiornata)
EserciziVari
Martedì 30/4 Completamento Lez.12 ed Esercizi Vari vedi materiale di giovedi 18/4
Giovedì 02/5 Java: Basilari di Gerarchia di classi Lezione13
Venerdì 03/5 Laboratorio SmallC: Semantica SOS, Espressioni e Comandi Laboratorio5.pdf
SmallC.ml
Martedì 07/5 Completamento Lezione 13, Vector, Iset: Testo e Sviluppo Vector.pdf
Iset.java
Mercoledì 08/5 Programmare Nuovi Tipi di Dato: Immutable in Java e in Ocaml Lezione14
Iset.java
Giovedì 09/5 Interfacce: Usi, Eccezioni: Costrutti, Dati Astratti: Meccanismi per esprimerli in Java Lezione15
Venerdì 10/5 Laboratorio SmallC: Semantica SOS, Espressioni e Comandi Laboratorio6.pdf
SmallC.ml
Martedì 14/5 Completamento Lezione 15: Polimorfimo Generico. Esercizi: StackImm, StackImm2, StackADT StackImm.java
StackImm2.java
StackImm2ADT.java
Mercoledì 15/5 Polimorfismo di Sottotipo. Tipi Astratti Mutable e Immutable. Studio di un Caso Lezione16
STACKS.zip
Giovedì 16/5 Completamento Lezione 16: Stack Mutable. Equivalenza di Tipi in Java. Metodi Additionals: equals con generici. Lezione17Parte1.pdf
Venerdì 17/5 Laboratorio SmallC: Varianti ed Uso Laboratorio7.pdf
SmallC.ml (aggiornato)
Martedì 21/5 Equals: per Sostituzione e strutturale. Clone: Mecanismo. Clone: Shallow. Clone Intermediate e Deep: l'interfaccia MuCloneable Lezione17P1-2-3
Mercoledì 22/5 Linguaggi Funzionali: Proprieta' Generali e in OCaml. Tipi di dato, Tipi Polimorfi. Higher Order. Tipi Astratti. Lezione19Parte1e2.pdf [GM] Cap.11
Giovedì 23/5 Linguaggi Funzionali: Principio di Astrazione, Riuso. Astrazioni di Pattern: Higher Order, Fold, map, filter. Verifica ed Efficienza: Dimostrazione di una proprieta` Lezione19Parte2.pdf
Venerdì 24/5 Esercitazione Pratica: Programmazione con OCaml e con Java TipiAstratti.pdf
Listing.zip
Martedì 28/5 Completamenti ed Esercizi PolySet.ml (soluzione)
Listing.zip (soluzione)
     
     
     
Lunedi 03 Giugno Appello: Prova Preliminare
AULA M1 - ORA 14:00
Iscrizione Obbligatoria
Testo Allegati OCaml Java
Venerdi 14 Giugno Prova Finale
AULA Seminari Est (dip. Informatica) - ORA 16:00
Iscrizione Obbligatoria
Lunedi 24 Giugno Appello: Prova Preliminare
AULA M1 - ORA 09:00
Iscrizione Obbligatoria
Testo Allegati OCaml Java
Venerdi 5 Luglio Prova Finale
AULA Seminari Est (dip. Informatica) - ORA 09:00
Iscrizione Obbligatoria
Giovedi 18 Luglio Appello: Prova Preliminare
AULA M1 - ORA 09:00
Iscrizione Obbligatoria
Testo Allegati OCaml Java
Martedi 30 Luglio Prova Finale
AULA Seminari Est (dip. Informatica) - ORA 09:00
Iscrizione Obbligatoria
Lunedi 2 Settembre Appello: Prova Preliminare
AULA M1 - ORA 14:00
Iscrizione Obbligatoria
Testo Allegati OCaml Java
Venerdi 6 Settembre Prova Finale
AULA Riunioni Est (dip. Informatica) - ORA 09:00
Iscrizione Obbligatoria
Mercoledi 8 Gennaio 2020 Appello: Prova Preliminare
AULA L - ORA 09:00
Iscrizione Obbligatoria
Testo Allegati OCaml Java
da concordare Appello: Prova Finale
Iscrizione Obbligatoria
Giovedi 23 Gennaio 2020 Appello: Prova Preliminare
AULA L - ORA 09:00
Iscrizione Obbligatoria
Testo Allegati OCaml Java
da concordare Appello: Prova Finale
Iscrizione Obbligatoria
     
     
     
    
     
    
     
    


(