JavaGI: Generalized Interfaces for Java

Authors: Stefan Wehr, Ralf Lämmel, and Peter Thiemann

In Erik Ernst, editor, ECOOP 2007 Object-Oriented Programming. LNCS, vol. 4609, pp. 347-372. Springer-Verlag, 2007.

Abstract

JavaGI is an experimental language that extends Java 1.5 by generalizing the interface concept to incorporate the essential features of Haskell's type classes. In particular, generalized interfaces cater for retroactive and constrained interface implementations, binary methods, static methods in interfaces, default implementations for interface methods, interfaces over families of types, and existential quantification for interface-bounded types. As a result, many anticipatory uses of design patterns such as Adapter, Factory, and Visitor become obsolete; several extension and integration problems can be solved more easily. JavaGI's interface capabilities interact with subtyping (and subclassing) in interesting ways that go beyond type classes. JavaGI can be translated to Java 1.5. Its formal type system is derived from Featherweight GJ.

Bibtex

@INPROCEEDINGS{WehrLammelThiemann2007,
  author = {Stefan Wehr and Ralf L{\"a}mmel and Peter Thiemann},
  title = {{JavaGI}: Generalized Interfaces for {Java}},
  year = 2007,
  booktitle = {ECOOP 2007 Object-Oriented Programming},
  series = {LNCS},
  publisher = {Springer-Verlag},
  volume = 4609,
  pages = {347--372},
  editor = {Erik Ernst}
}

Resources

Last modified: 2008-09-21T22:44:49+02:00