The Pizza Compiler

The Pizza language is an extension to Java with three new features:
- Generics (aka Parametric polymorphism)
- Function pointers (aka First-class functions)
- Class cases and pattern matching (aka Algebraic types)

Papers on Pizza




Language definition   "Pizza into Java: Translating theory into practice", Martin Odersky and Philip Wadler. Proc. 24th ACM Symposium on Principles of Programming Languages, Paris, France, January 1997.
Homogeneous vs. Heterogeneous translation   "Two Ways to Bake Your Pizza - Translating Parameterised Types into Java", Martin Odersky, Enno Runne, and Philip Wadler. Generic Programming - Proceedings of a Dagstuhl Seminar, Springer Lecture Notes in Computer Science 1766. Copyright © Springer Verlag.