Hygienic methods - Introducing HygJava
Jaroslaw D. M. Kusmierek, Institute of Informatics, Warsaw University
Viviana Bono, Dept. of Computer Science, Torino University
One of the base concepts of object-oriented programming is that of "method".
In languages supporting inheritance, this concept is realized by three different actions:
(i) the introduction of a new method; (ii) the implementation/override of an existing
method; (iii) the method call.
The bindings between (ii) and (i), and between (iii) and (i) are typically based on
method names, which are not guaranteed to be unique, thus such bindings might
cause some ambiguities. As a result, modifications of existing code may cause errors
in some other parts of the code, especially in programs written by third party developers;
overall, a programmer cannot predict the moment in the execution when such
ambiguities will arise.
In this paper, we describe the nature of these problems and propose a general mechanism
to overcome ambiguities in a safe, straightforward, and flexible way. To study
the details of this mechanism, and make the reader more familiar with it, we show
how to apply this mechanism to Java, and also to a mixin-oriented language called
Note: Due to the typographical sophistication of this article, no HTML version is available. Please use the PDF version.
About the authors
||Jaroslaw Dominik Mateusz Kusmierek is a PhD student in
Computer Science at the University of Warsaw, Poland. His main
research interests are the base concepts and the design of object oriented
languages, and the component oriented approach to software
development. He can be reached at email@example.com.
||Viviana Bono is an Associate Professor in Computer Science at
the University of Torino, Italy. Her main research interests are theoretical
foundations, semantics, and design of object-oriented and
functional languages. She can be reached at firstname.lastname@example.org and
Cite this document as follows: Jaros law D. M. Kusmierek and Viviana Bono: "Hygienic
methods - Introducing HygJava", in Journal of Object Technology, vol. 6,
no. 9, Special Issue: TOOLS EUROPE 2007, October 2007, pages 209-229, http://www.jot.fm/issues/issue_2007_10/paper11/