MPI-INF Logo
MPI-INF/SWS Research Reports 1991-2021

2. Number - All Departments

MPI-I-1999-1-004

How generic language extensions enable ''open-world'' design in Java

Nissen, Marco and Weihe, Karsten

September 1999, 40 pages.

.
Status: available - back from printing

By \emph{open--world design} we mean that collaborating classes are so loosely coupled that changes in one class do not propagate to the other classes, and single classes can be isolated and integrated in other contexts. Of course, this is what maintainability and reusability is all about. In the paper, we will demonstrate that in Java even an open--world design of mere attribute access can only be achieved if static safety is sacrificed, and that this conflict is unresolvable \emph{even if the attribute type is fixed}. With generic language extensions such as GJ, which is a generic extension of Java, it is possible to combine static type safety and open--world design. As a consequence, genericity should be viewed as a first--class design feature, because generic language features are preferably applied in many situations in which object--orientedness seems appropriate. We chose Java as the base of the discussion because Java is commonly known and several advanced features of Java aim at a loose coupling of classes. In particular, the paper is intended to make a strong point in favor of generic extensions of Java.
Categories / Keywords:
Java, GJ, Generic Programming, Data Accessor, Algorithm Engineering

  • MPI-I-1999-1-004.ps
  • Attachement: MPI-I-1999-1-004.ps (217 KBytes)

URL to this document: https://domino.mpi-inf.mpg.de/internet/reports.nsf/NumberView/1999-1-004

Hide details for BibTeXBibTeX
@TECHREPORT{Nissen1999,
  AUTHOR = {Nissen, Marco and Weihe, Karsten},
  TITLE = {How generic language extensions enable ''open-world'' design in Java},
  TYPE = {Research Report},
  INSTITUTION = {Max-Planck-Institut f{\"u}r Informatik},
  ADDRESS = {Stuhlsatzenhausweg 85, 66123 Saarbr{\"u}cken, Germany},
  NUMBER = {MPI-I-1999-1-004},
  MONTH = {September},
  YEAR = {1999},
  ISSN = {0946-011X},
}