PowerPoint Presentation - Type inference as abstract interpreter

Metodologie di Programmazione
 tecniche per la programmazione orientata ad
oggetti
 esemplificate utilizzando il linguaggio Java
 testo di riferimento (fino al Cap. 10):

Barbara Liskov, Program Development in Java,
Abstraction, Specification and Object-Oriented
Design, Addison-Wesley 2001
1
Prerequisiti del Corso
 LIP (I MODULO)
 Fondamenti di Programmazione
 Frequenza in parallelo del II MODULO DI
LIP
 Le lezioni teoriche avranno argomenti
comuni tra i due corsi
2
Contenuti del corso 1
(in corsivo le parti non trattate nel testo)
 Ereditarieta’ in Java
 cenni di semantica operazionale di Java


classi, oggetti, metodi, gerarchie
estensione di quella fatta nel corso di FP
3
Contenuti del corso 2
 Parte metodologica
 Vedremo come utilizzare i meccanismi di astrazione
di un linguaggio ad alto livello (Java) per sviluppare
programmi di buona qualita’:
che siano facili da capire e allo stesso tempo facili
da mantenere e da modificare
 Non è compito di questo corso introdurre il
linguaggio nella sua interezza

nè tanto meno le sue librerie
4
Contenuti del corso 2
 per sviluppare programmi di notevole dimensione e’
necessario decomporre il problema in sottoproblemi
 questo processo di decomposizione deve essere
guidato da passi di astrazione
 e’ necessario cambiare il livello di dettaglio
(astrarre) in modo da buttare via dettagli non
importanti, rendere uguali cose diverse etc.
5
Contenuti del corso 3
 vedremo un insieme di tecniche basate su vari tipi di
astrazione

alcune supportate da Java in modo più o meno diretto

la più importante non è supportata da Java
• l’astrazione attraverso la specifica
• si realizza aggiungendo al codice Java
– specifiche informali (descrivono cosa deve fare un programma)
6
Astrazione tramite Specifica
 Vedremo la separazione fondamentale tra specifica ed
implementazione (ovvero tra cosa un programma fa e come lo fa)
 Vedremo come la specifica deve essere utilizzata per mascherare
l’implementazione (ovvero per astrarre dalle varie implementazioni)
 Relazione tra specifica ed implementazione, dimostrazioni di
“correttezza”

relazioni formali fra 2 specifiche, fra 1 specifica ed una implementazione,
etc.
 Le dimostrazioni sono tanto importanti quanto le implementazioni
7
Contenuti del corso 3
 meccanismi di astrazione di Java (che consideremo)
 astrazioni procedurali
 astrazioni sui dati
 iterazione astratta
 gerarchie di tipi
 polimorfismo
 ogni meccanismo di astrazione di Java ha associata una
particolare sequenza di operazioni di: specifica,
implementazione e dimostrazione
8
Materiale didattico
 in aggiunta al (non in sostituzione del) libro di testo, i
lucidi utilizzati nelle lezioni e nelle esercitazioni (di
presentazione powerpoint scaricabile) sono disponibili
sulla pagina web
http://www.di.unipi.it/~levifran/MP.html
verranno pubblicati settimanalmente sulla pagina
web in forma aggiornata
i lucidi costituiscono un supporto fondamentale per seguire
le lezioni (e’ consigliabile averne copia)
9
Esame, istruzioni per l’uso del
corso
 esame = prova scritta + orale
 l’esame orale deve essere sostenuto nella stessa
sessione dello scritto
 2 prove intermedie che possono rimpiazzare la prova
scritta (in tal caso l’orale deve essere sostenuto entro
luglio 2007)
10
Verifiche Intermedie
 prima settimana di aprile + ultima settimana di
maggio
 Non e’ possibile recuperare le verifiche
 Chi non e’ ammesso all’orale con le verifiche
intermedie dovra’ sostenere lo scritto normale
11
Orario (modificato)
 Martedi’ 11.00-13.00--14.00-16.00 AULA 2 (MP)
 Venerdi’ 11.00-13.00--14.00-16.00 LAB 2 (LIP)
12
Nota
 Nuovo ordinamento dall’anno accademico
2008-2009
 Dall’anno prossimo partira’ il primo anno con il
nuovo piano di studi
13
Esami di Informatica nuovo
ordinamento
 Programmazione 1: 12 crediti al PRIMO
 Algoritmica : 12 crediti al PRIMO
 Programmazione 2: 9 crediti al SECONDO
14
Cosa succede agli studenti del
vecchio ordinamento?
 Potrete continuare con il vostro piano di studi
 Verranno comunque mantenuti gli appelli d’esame
di tutte le materie
 Questo quindi e’ probabilmente l’ultimo anno
in cui ci saranno lezioni di MP e LIP
15