Brew

Principal Investigators: Gerald Baumgartner, Vincent F. Russo

The goal of this project is to design and implement the language Brew, a distributed object-oriented language. This language will be syntactially based on Java and will share most of the core language features with Java.

Instead of Java's classes, Brew will have a new object model that includes subtyping separate from inheritance, lexically scoped closure objects independent of classes and multimethod dispatch. Unlike Java, which only allows source code to be shipped, Brew will allow objects, i.e., life computation, to migrate.

Brew interfaces will also be used as an interface definition language for remote objects or objects written in other languages and will include language support for semantics specifications. In addition, we are planning to include path expressions for concurrency control and language support for persistant object stores. The use of structural subtyping in Brew makes Brew interfaces more flexible than CORBA IDL and allows persistent objects to be used in a flexible and type-safe manner.

Currently, we are working on a compiler to translate a subset of Brew, Microbrew, into Java Byte Code.