The Twelth International Workshop 
Foundations of Object-Oriented Languages


Sponsored by ACM SIGPLAN

Saturday 15 January 2005
Long Beach, California, USA
Following POPL '05


9.00-10.00 Invited talk

Object-oriented languages, fixed points, and systems of objects Kim Bruce, Williams College (on leave at the University of California at Santa Cruz)

10.00-10.30 Coffee

10.30-12.00 Paper session I

First-class relationships in an object-oriented language Gavin Bierman and Alisdair Wren

A Core Calculus of Metaclasses Sam Tobin-Hochstadt and Eric Allen

Harmless Advice Daniel S Dantas and David Walker

12.00-1.30 Lunch

1.30-3.00 Paper session II

Independently Extensible Solutions to the Expression Problem Matthias Zenger and Martin Odersky

Recursive Object-Oriented Modules Keiko Nakata, Akira Ito, and Jacques Garrigue

Wild FJ Mads Torgersen, Erik Ernst, and Christian Plesner Hansen

3.00-3.30 Coffee

3.30-5.00 Panel: Extreme Typing

Robby Findler, Contracts. Collaborations with run of the mill Java programmers got you singing the blues? Do you wish you could use all of PLT Scheme's libraries in a language with proper structure? Do even your fellow ML programmers balk at the bizarro error messages from your latest extension to the type system? Well, my friends, turn that frown upside down. Come and see how how contracts can support multiple type systems in the same program.

James Hook, Pushing typing toward verification. Modular effects: the next frontier! Functional programmers have spent the last decade celebrating the ability to write imperative programs in pure languages. But now we can do more than play catch with other paradigms: Monad transformers have recently emerged as a way to tailor effects and tame their interactions. This fine-control of effects can be used to formally develop programs with properties like information security without extending the type system. Fine control of effects allows us to rely on by properties of monads, so our slogan is: mostly types (and a little theorem proving)!

Wolfram Schulte, Maintaining invariants in OO languages. Everyone knows what an object invariant is. But do you also know when it holds? Further, can invariants relate fields of several objects? And how can we maintain those invariants in the presence of callbacks and multithreading? If you know the answer to these questions let us know; otherwise stop by to find out what Spec# is all about.

Jan Vitek, Stealth Typing Interested in type systems and want to have an impact on mainstream languages in your lifetime? The only reasonable route from theory to acceptance is through stealth and deception. Learn how to sneak new type systems into existing languages. Examples of ownership types for the Real-Time Specification for Java will be given.

Philip Wadler