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)

Other Pizza FAQ




Why did you choose the name Pizza?   We wanted something that appealed to hackers. The Pizza project - and the name - was conceived before we decided to base Pizza on Java. Therefore, the names Pizza and Java have very little in common.
What are current developments and future plans for Pizza an d GJ?   Since we are only a couple of people that work on Pizza/GJ, we have to concentrate our efforts to get anything done. Right now, we concentrate on GJ. The language is fixed in essence, but we are still polishing the implementation and documentation. GJ's updates run to about 1 a month, and we try to fix every reported bug within that time-scale. Currently, there are very few reported bugs. If you find problems, we are always grateful for reports. The Pizza development is currently in a dormant (or stable, depending on how you look at it) state. This means that the language is currently not being changed, the compiler is maintained, but we are not working on any major changes. Updates of the Pizza compiler happen about once per quarter, and we try to fix most reported problems within that time-frame. If in the long run there is a lot of interest for both Pizza and GJ, it would be worthwhile to merge the developments. For instance, one could base a new version of Pizza on the type system of GJ. To be able to do this, we need more persons working on the project, though. I believe there are a number of interesting research and design problems arising form such a merger, and there is a fair chance we will have more people in the future. But there are no definite plans yet.