JavaGI: Generalized Interfaces for Java

Stefan Wehr, Ralf Lämmel, and Peter Thiemann

In Erik Ernst, editor, Proceedings of the European Conference on Object-Oriented Programming. Lecture Notes in Computer Science, vol. 4609, pp. 347-372, Berlin, Germany. Springer-Verlag, 2007.


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.


  author = {Stefan Wehr and Ralf L{\"a}mmel and Peter Thiemann},
  title = {{JavaGI}: Generalized Interfaces for {Java}},
  address = {Berlin, Germany},
  year = 2007,
  booktitle = {Proceedings of the European Conference on Object-Oriented Programming},
  series = {Lecture Notes in Computer Science},
  publisher = {Springer-Verlag},
  volume = 4609,
  pages = {347--372},
  editor = {Erik Ernst}


Last modified: 2015-06-10T22:24:05+02:00