Fondamenti ed estensioni dei linguaggi
Java-like
Lo scopo del corso è presentare informalmente e formalmente le
caratteristiche dei linguaggi Java-like, discutere alcuni problemi di tipo
ed alternative di design e presentare alcuni articoli di ricerca relativi
a
formalizzazione ed estensioni del linguaggio Java.
Calendario lezioni
- 23 settembre 2002 (ore 15-18): Ripasso delle nozioni base del
paradigma object-oriented ed in
particolare dei linguaggi Java-like (class-based, con tipi=nomi delle
classi).
- 24 settembre 2002 (ore 15-18): Formalizzazione della semantica statica
e dinamica di un
mini-linguaggio Java-like.
- 25 settembre 2002 (ore 15-18): Discussione di problemi di tipo e
possibilità di scelte di design
alternative (covarianza e controvarianza, tipi diversi da classi).
Per queste tre lezioni il materiale sono queste dispense.
- 26-27 settembre 2002 (ore 15-18): Presentazione e discussione dei
seguenti articoli di ricerca
relativi a formalizzazioni del linguaggio Java.
Describing
the Semantics of Java and Proving Type Soundness
S. Drossopoulou and S. Eisenbach
In "Formal Syntax and Semantics of Java", LNCS 1523, Springer, 1999.
(formalizzazione di un sottoinsieme rilevante di Java)
Featherweight
Java: A Minimal Core Calculus for Java and GJ
A. Igarashi, B. Pierce and P. Wadler
OOPSLA'99, SIGPLAN Notices, ACM Press, 1999.
(un calcolo molto semplice che modella le caratteristiche base dei
linguaggi Java-like)
A Core Calculus for Java Exceptions
D. Ancona, G. Lagorio, and E. Zucca
OOPSLA'01, SIGPLAN Notices, ACM Press, 2001.
(un calcolo che modella il meccanismo delle eccezioni controllate di Java)
- 18 Febbraio 2003 (ore 15-18): Presentazione e discussione dei seguenti
articoli di ricerca
relativi ad estensioni del linguaggio Java.
Jam: A Smooth Extension of Java with
Mixins
D. Ancona, G. Lagorio, and E. Zucca
ECOOP'00, LNCS 1850, Springer, 2000
(estensione di Java con classi mixin, cioè classi eredi
parametriche;
qui i lucidi)
Dynamic Object
Re-classification
S. Drossopoulou, F. Damiani, M.Dezani, and P.
Giannini
ECOOP'01, LNCS 2072, Springer,
2001
(estensione di un linguaggio Java-like con riclassificazione dinamica,
cioè un meccanismo che permette agli oggetti di cambiare classe
dinamicamente; seminario di Daniele D'Agostino, qui i lucidi)
True
Modules for Java-Like
Languages
D. Ancona and E.
Zucca
ECOOP'01, LNCS 2072, Springer,
2001
(definizione di linguaggio di moduli che hanno come componenti classi
Java-like; seminario di Sonia
Fagorzi, qui i
lucidi)
- 17 Marzo 2003 (ore 15-18): Presentazione e discussione dei seguenti
articoli di ricerca
relativi ad estensioni del linguaggio Java.
MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java
Curtis Clifton, Gary T. Leavens, Craig Chambers, and Todd Millstein
OOPSLA'00, SIGPLAN Notices, ACM Press,
2000
(estensione con
multimetodi, qui i
lucidi))
Making the future
safe for the past: Adding Genericity to the Java Programming Language
Gilad Bracha, Martin Odersky, David Stoutamire, and Philip Wadler
OOPSLA'98, SIGPLAN Notices, ACM Press, 1998
(estensione con classi parametriche; seminario di Elena Camossi, qui i
lucidi)
Modalità d'esame
L'esame consiste in un seminario di presentazione di uno degli articoli
sulle formalizzazioni/estensioni di Java oppure nella stesura di una breve
relazione che descriva sperimentazioni con un'estensione di Java.
Potete anche consultare le pagine dei corsi di Principles
of Object-Oriented Programming e Seminar in
Object-Oriented Programming
da me tenuti all'University of
Oregon.
Ritorno alla pagina precedente
Per suggerimenti e commenti si prega di scrivere a: Elena Zucca zucca@disi.unige.it
Ultima modifica: 24 Marzo 2003