Max-Planck-Institut für Informatik
max planck institut
mpii logo Minerva of the Max Planck Society


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

Nissen, Marco and Weihe, Karsten

MPI-I-1999-1-004. September 1999, 40 pages. | Status: available - back from printing | Next --> Entry | Previous <-- Entry

Abstract in LaTeX format:
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
References to related material:

To download this research report, please select the type of document that fits best your needs.Attachement Size(s):
MPI-I-1999-1-004.ps217 KBytes
Please note: If you don't have a viewer for PostScript on your platform, try to install GhostScript and GhostView
URL to this document:
Hide details for BibTeXBibTeX
  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},