elenco   
        corso   

Programmazione: Laboratorio di Tecniche di Raffinamento

(Corso di Laurea in Informatica (quinquennale))

Codice: 4I088Crediti: 6Semestre: 2Sigla: PLT 

Docente

Carlo Montangero   monta@di.unipi.it  Stanza 311  Tel. 0502212799

Prerequisiti

Programmazione e Logica

Obiettivi di apprendimento

Il corso si propone di sviluppare competenze nella produzione sistematica di programmi sequenziali con tecniche di raffinamento formale.

Descrizione

Verranno trattati i metodi di raffinamento dei programmi e dei dati, che permettono di ottenere versioni efficienti in spazio e ottimizzate in tempo di programmi progettati in termini di dati astratti. Un tipico esempio è la derivazione della versione iterativa con spazio costante di quick sort. L'approccio seguito è dovuto a C.Morgan, e permette di documentare sistematicamernte le scelte di progetto, al fine di soddisfare uno dei requisiti fondamentali dello sviluppo professionale di software. Si tratta di un laboratorio, perchè ci sarà poca teoria e molti esempi.

English Description

We present program and data refinemement in the style due to C. Morgan. The approach is practical, with more examples than theory.

Programma

1. Programmi come contratti, raffinamento: Programmi astratti, concreti e misti 2. Un'estensione del linguaggio dei guarded commands: Tipi, dichiarazioni, procedure e moduli 3. Trasformazioni di stato e raffinamento di dati: Aggiunta e eliminazione di variabili, funzioni di astrazione 4. Studio di casi
Ore lezione: 25Ore esercitazione: 15   

Bibliografia

C. Morgan. "Programming from specifications" Prentice Hall, 1994 (seconda edizione).

Modalità di esame

Scritto e orale

Ulteriore pagina web del corso: http://www.di.unipi.it/~monta/PagineLTR


home


email