Pizza is a Java extension that provides parameteric polymorphism, as well
as higher-order functions and algebraic data types. For our purposes,
parameteric polymorphism is the feature of interest.
Papers
The following paper was assigned:
- Martin Odersky and Philip Wadler. "Pizza into Java: Translating theory
into practice", 24th ACM Symposium on Principles of Programming Languages,
Paris, January 1997. We distributed copies in class. Also available from
the ACM Digital Library. You can also find
it on
Phil
Wadler's GJ, Pizza, and Java page (at the bottom of the page).
Here are some additional, optional, papers for those interested:
- Peter Canning, William Cook, Walter Hill, Walter Olthoff, John
C. Mitchell, "F-bounded polymorphism for object-oriented programming",
Proceedings of the fourth international conference on Functional
programming languages and computer architecture, ACM, 1989. (Available
in the ACM Digital Library.)
- Atsushi Igarishi, Benjamin Pierce, and Philip Wadler, "Featherweight
Java: A minimal core calculus for Java and GJ", OOPSLA, Denver, November
1999. Available from the ACM Digital Library; paper also
linked from Phil Wadler's page.
- Gilad Bracha, Martin Odersky, David Stoutamire, and Philip Wadler,
"Making the future safe for the past: Adding Genericity to the Java
Programming Language", OOPSLA 98, Vancouver, October 1998. (Also linked
from Phil's page.)
- Robert Cartwright and Guy L. Steele, "Compatible genericity with
run-time types for the Java programming language", OOPSLA 98, Vancouver,
October 1998. Available from the
ACM Digital Library.