Abstract
This paper introduces the concepts of wide classes and widening as extensions to the object model of class-based languages such as Java and Smalltalk. Widening allows an object to be temporarily widened, that is transformed into an instance of a subclass, a wide class, and, later on, to be shrunk, that is reshaped to its original class. Wide classes share the main properties of plain classes: they have a name, a superclass, they may be instantiated, they have an associated class predicate and an associated type that may be used to override function definitions.
Widening is also useful to implement transient data storage for long-lasting computations. In particular, it helps reducing software data retention. This phenomenon arises when the actual data structures used in a program fail to reflect time-dependent properties of values and can cause excessive memory consumption during the execution. Wide classes may be implemented for any dynamically-typed class-based programming language with very few modifications to the existing run-time system. We describe the simple and efficient implementation strategy used in the Bigloo runtime system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
D. Bobrow, L. DeMichiel, R. Gabriel, S. Keene, G. Kiczales, and D. Moon. Common lisp object system specification. In special issue, number 23 in Sigplan Notices, September 1988.
C. Chambers. The Cecil Language: Specification and Rationale. Technical Report 93-03-05, University of Washington, Department of computer Science and Engineering, March 1993.
C. Chambers. Predicate classes. In O. Nierstrasz, editor, Proceedings ECOOP’93, LNCS 707, pages 268–296, Kaiserslautern, Germany, July 1993. Springer-Verlag.
L. Damas and R. Milner. Principle Type Inference for Functional Programs (extended abstract). In 9th ACM Symposium on Principle of Programming Langugages, pages 207–212, 1982.
A. Goldberg and D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983.
J. Hamer. Un-Mixing Inheritance with Classifiers. In Multiple Inheritance and Multiple Subtyping: Position papers of the ECOOP’92 Workshop, LNCS 707, pages 6–9, Utrect, Netherlands, July 1992. Springer-Verlag.
IEEE Std 1178-1990. IEEE Standard for the Scheme Programming Language. Institute of Electrical and Electronic Engineers, Inc., New York, NY, 1991.
C. Queinnec. Designing meroon v3. In Workshop on Object-Oriented Programming in Lisp, 1993.
D. Rémy and J. Vouillon. Obective ML: A simple object-oriented extension of ML. In Symposium on Principles of Programming Languages, pages 40–53, 1997.
F. Rivard. évolution du comportement des objets dans les langages à classes réflexifs. 98-1-info, école des Mines de Nantes, 1998.
R. Schmidt. Dynamically Extensible Objects in a Class-Based Language. In TOOLS USA, July 1997.
A. Taivalsaari. Object-oriented programming with modes. Journal of Object-oriented programming, pages 25–32, June 1993.
D. Ungar. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, Cambridge, Mass., USA, 1986.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Serrano, M. (1999). Wide Classes. In: Guerraoui, R. (eds) ECOOP’ 99 — Object-Oriented Programming. ECOOP 1999. Lecture Notes in Computer Science, vol 1628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48743-3_18
Download citation
DOI: https://doi.org/10.1007/3-540-48743-3_18
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66156-6
Online ISBN: 978-3-540-48743-2
eBook Packages: Springer Book Archive