Abstract
The semantics of class inheritance has first been given in operational form (method-lookup-semantics). While this semantics is well suited for implementing object-oriented programming languages, it may conceal the true nature of inheritance. The development of denotational semantics for object-oriented languages has culminated in object creation as fixed point operation. Cook gave a semantics on this basis, using so called wrappers. This semantics abstracts from the internal state of objects (instance variables).
In this paper we show how wrapper semantics can be extended to an object-oriented programming language with state while keeping the structure of the original definitions. For this purpose we define a direct denotational semantics of a small example language. The insertion of state into class definitions can be done before or after the related fixed point operation. The choice of the alternative considerably influences the semantic domains and clauses.
Preview
Unable to display preview. Download preview PDF.
References
H. Abelson, G. J. Sussman, and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.
H. P. Barendregt. The Lambda Calculus — Its Syntax and Semantics. Volume 103 of Studies in Logic and The Foundations of Mathematics, North-Holland, revised 1984 edition, 1981.
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. In Object-Oriented Programming Systems, Languages and Applications, pages 433–444, ACM, Oct. 1989.
W. R. Cook. A Denotational Semantics of Inheritance. Technical Report CS-89-33, Brown University, Dept. of Computer Science, Providence, Rhode Island 02912, May 1989.
M. Felleisen. On the expressive power of programming languages. Lecture Notes in Computer Science, 432:134–151, 1990. European Symposium on Programming.
A. Goldberg and D. Robson. Smalltalk-80: the Language. Addison-Wesley, 1989.
M. Gordon. The Denotational Description of Programming Languages: An Introduction. Springer-Verlag, New York/Heidelberg/Berlin, 1979.
A. Hense. The Denotational Semantics of an Object Oriented Programming Language. Technical Report A 01/90, Universität des Saarlandes, Fachbereich 14, Jan. 1990.
J. Hindley and J. Seldin. Introduction to Combinators and λ-Calculus. Volume 1 of London Mathematical Society Student Texts, Cambridge University Press, 1986.
S. Kamin. Inheritance in Smalltalk-80. In Symposium on Principles of Programming Languages, pages 80–87, ACM, Jan. 1988.
R. Milner. A proposal for standard ML. In Symposium on Lisp and Functional Programming, pages 184–197, ACM, Austin Texas, 1984.
U. S. Reddy. Objects as closures: abstract semantics of object-oriented languages. In Symposium on Lisp and Functional Programming, pages 289–297, ACM, 1988.
D. Scott. Data types as lattices. SIAM J. Comput., 5:522–587, 1976.
A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In Object-Oriented Programming Systems, Languages and Applications, pages 38–45, ACM, Sep. 1986.
J. E. Stoy. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT press, 1977.
A. Tarski. A lattice-theoretical fixed point theorem and its applications. Pacific Journal of Mathematics, 5:285–309, 1955.
D. Turner. Miranda: a non-strict functional language with polymorphic types. Lecture Notes in Computer Science, 201:1–16, 1985. Functional Programming Languages and Computer Architecture.
P. Wadler. Comprehending monads. In Symposium on Lisp and Functional Programming, pages 61–78, ACM, 1990.
P. Wegner. The object-oriented classification paradigm. In B. Shriver and P. Wegner, editors, Research Directions in Object Oriented Programming, pages 479–560, MIT Press, 1987.
P. Wegner and S. Zdonik. Inheritance as an incremental modification mechanism or what like is and isn't like. Lecture Notes in Computer Science, 322:55–77, Aug. 1988. European Conference on Object-Oriented Programming.
M. Wolczko. Encapsulation, delegation and inheritance in object-oriented languages. 1990. (submitted for publication).
M. Wolczko. Semantics of Smalltalk-80. Lecture Notes in Computer Science, 276:108–120, 1987. European Conference on Object-Oriented Programming.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hense, A.V. (1991). Wrapper semantics of an object-oriented programming language with state. In: Ito, T., Meyer, A.R. (eds) Theoretical Aspects of Computer Software. TACS 1991. Lecture Notes in Computer Science, vol 526. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54415-1_64
Download citation
DOI: https://doi.org/10.1007/3-540-54415-1_64
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54415-9
Online ISBN: 978-3-540-47617-7
eBook Packages: Springer Book Archive