Linguaggi di Programmazione e Laboratorio

LAUREA in MATEMATICA

Università di Pisa
Anno Accademico 2020-21
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.

> >

Mercoledi' 24/ 02

Presentazione del Corso

Presentazione

Giovedi' 25/ 02

Funzioni Calcolabili, Linguaggi di Programmazione, Algoritmi

Lezione1

Lunedi' 01/03

Linguaggi: Algoritmi, Espressivita' e Paradigmi

Lezione2

Martedi' 02/03

LaboratorioA1: Unione Disgiunta in C

LaboratorioA1 UB0.c
UB0A.c Solution.c

Mercoledi 03/03

Macchine Astratte: Struttura e Realizzazione

Lezione3 [BM]-cap.1

Giovedi 04/03

Compilatori e Interpreti: Confronto

Lezione4 [BM]-cap.2

Lunedi 08/03

Completamenti ed Esercizi

Esercizi Vari

Martedi 09/03

ANNULLATA

Mercoledi 10/03

Linguaggi: Sintassi, Token, Stringhe, ParseTree

Lezione4 [BM]-cap.2

Giovedi 11/03

Linguaggi: Sintassi, Context Free Ambigue

Lezione4 [BM]-cap.2

Lunedi 15/03

Esercizi

Soluzioni

Martedi 16/03

LaboratorioA2: OCaml - Installazione e Uso Guida e Tests

Mercoledi 17/03

Linguaggi: Semantica SOS e Teorie I ordine

Lezione4

Giovedi 18/03

Funzioni di Decisione Lezione5 [BM]-cap3

Lunedi 22/03

Esercizi Sintassi e Semantica EserciziVari3

Martedi 23/03

LaboratorioA3: OCaml - Panoramica

LaboratorioA3
Listing

Mercoledi 24/03

Modelli di Calcolo: Lambda Calcolo

Lezione5

Giovedi 25/03

Modelli di Calcolo: Macchina a Stati
Ambienti e Scope Statico e Dinamico

Lezione5
Lezione6 [BM]-cap4

Lunedi 29/03

OCaml: Tipi Algebrici OCamlLab3b.ml

Martedi 30/03

Lambda Calcolo: Sintassi Astratta in OCaml Last21Testo.ml
Soluzioni Discusse.ml

Mercoledi 31/03

Macchina Astratta: Memoria, AR, Stack di AR Lezione6 [BM]-cap5

Giovedi 01/04

Linguaggi: Controllo di Sequenza

Lezione7 {BM]-cap6

Lunedi 12/04

Laboratorio1: Linguaggio Small21 - AST

Small21: Aggiornato
AST: Listing Iniziale
AST: Soluzione Ex1-2

Martedi 12/04

Laboratorio1B: Small21: Sintassi Concreta

SoluzionidiIeri
LucidiIerieOggi (aggiornato)
AST: Listing Iniziale
Svolto Oggi (aggiornato)

Mercoledi 14/04

Comandi Strutturati, Ricorsione di coda e memoization Lezione7 [BM]-cap6

Giovedi 15/04

Astrazioni e Forme di trasmissione dei Parametri Lezione8 [BM]-cap7

Lunedi 19/04

Esercizi - La Macchina Astratta AM21 Laboratorio1B: Soluzione.ml
Attivita di Oggi.pdf
all1.ml all2.pdf

Martedi 20/04

Laboratorio2: Small21 - Store e Frame di AM21

Laboratorio2.pdf
small21L2.ml

Mercoledi 21/04

Parametri per Nome, Procedura/Funzione, Higher Order, Eccezioni

Lezione8 [BM]-cap7

Giovedi 22/04

Dati, Tipi di Dato, Tipi

Lezione9.pdf [BM]-cap8

Lunedi 26/04

Esercizi e Sistema di Tipi

Soluzione.ml del 20/04
Esercizi Oggi
Soluzione esercizio1
SistemaYSmall21

Martedi 27/04

Laboratorio3: AM21 - AR e Stack AR

Laboratorio3.pdf
small21L3.ml
Codice.ml

Mercoledi 28/04

Valori, Tipi, Metodologia PreSAI

Valori Mutable , Lezione 9

Giovedi 29/04

Tipi Astratti

Lezione10 [BM]-cap9

Lunedi 03/05

Sistema di Tipi di Small21

Laboratorio3:Soluzione.ml
Attivita di Oggi
Allegato

Martedi 04/05

Laboratorio4: Dichiarazioni di Small21

Esercizi del 03/04: Soluzioni
Small21:Definizione.pdf
Small21L4.ml

Mercoledi 05/05

Tipi Astratti

Lezione10 [BM]-cap9

Giovedi 06/05

Linguaggi Funzionali: Principi

Lezione11 [BM]-cap11

Lunedi 10/05

Esercizi Vari

Laboratorio4:Soluzione.ml
Attivita di Oggi.pdf
GuidaAttivita.pdf

Martedi 11/05

Laboratorio5: Comandi e Statements

Small21:Definizione.pdf (agg.)
Materiale da usare
small21L5.ml
Da Completare

Mercoledi 12/05

Linguaggi Funzionali: Higher Order e Riuso

slides Lezione11 (v. 06/05)

Giovedi 13/05

Linguaggi OO: Principi - Riuso al I ordine

Lezione12 [GM]-cap10

Lunedi 17/05

Completeremo l'attiva' del 10/07

Esercizio5
Guida Completa
Small21L5Sol.ml (new)
Esempio.txt (new)

Martedi 18/05

Laboratorio6: Inline e Proc-Fun Block

Guida.pdf
oggi.pdf
small21L6.ml
fatto oggi

Mercoledi 19/05

Java: Fondamenti

Lezione13

Giovedi 20/05

Java: AST, AR, Esecuzioni

Lezione13

Lunedi 24/05

Java: Considerazioni ed Esercizi

Martedi 25/05

Laboratorio7: Array Statici

Small21:Definizione.pdf
Small21L7.ml

Mercoledi 26/05

Java: Fondamenti II

Lezione14

Giovedi 27/05

Esami di Fine Corso

ProjectPack21.zip





 

Seminari Progetto
di
Fine Corso

 


Martedi 15/06
Relatore: Ivan Bioli

Trasmissione per Costante e Condivisione di Array in Small21

Presentazione

Lunedi 5/07
Relatore: Enrico Calandrini

Dichiarazione Multipla di Variabili e Trasmissione Multipla di Parametri

Presentazione

Lunedi 5/07
Relatore: Simmaco Di Lillo

Switch e le correlate case, default, break in Small21: Una definizione C quasi integrale

Presentazione

Giovedi 29/07
Relatrice: Latizia D'Achille

Trasmissione per Nome in Small21

Giovedi 29/07
Relatore: Francesco Caporali

Trasmissione per Procedura e Funzione in Small21 con Deep Binding

Presentazione

Giovedi 02/09
Relatore: Alessio Marchetti

Il costrutto For del Pascal in Small21

Presentazione

Venerdi 17/09
Relatore: Andrea Marino

nat come sottotipo di int in Small21

Presentazione

Martedi 19/10
Relatore: Alessandro Sferlazza

Trasmissione per Result e per Value-Result in Small21

Presentazione

Martedi 26/10
Relatore: Daniele Canzoneri

Puntatori di C: Valori ed operatori &, *, new, in Small21

Presentazione

Giovdi 28/10
Relatore: Sivia Ballotta

Funzioni con Invocazioni Tail Recursive in Small21

Presentazione

Venerdi 29/10
Relatore: Riccardo Daluiso

Variabili ed Espressioni per Inizializzazione ed Assegnamento di Array in Small21

Presentazione

Venerdi 29/10
Relatore: Cecilia Marchi

Iteratore while-do e comando continue di C in Small21

Presentazione

Venerdi 29/10
Relatore: Francesco Baldino

Tipi e Valori Record in Small21

Presentazione