Two semantic models of object-oriented languages

We present and compare two models of object-oriented languages. The rst we call the closure model because it uses closures to encapsulate side eects on objects, and accordingly makes the operations on an object a part of that object. It is shown that this denotational framework is adequate to explain classes, instantiation, and inheritance in the style of Simula as well as Smalltalk{80. The second we call the data structure model because it mimics the implementations of data structure languages like CLU in representing objects by records of instance variables, while keeping the operations on objects separate from the objects themselves. This yields a model which is very simple, at least supercially . Both the models are presented by way of a sequence of languages, culminating in a language with Smalltalk{80-style inheritance. The mathematical relationship between them is then discussed and it is shown that the models give equivalent results. It will emerge from this discussion that more appropriate names for the two models might be the xe d-point model and the self-application model.

[1]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

[2]  Christopher Strachey,et al.  A theory of programming language semantics , 1976 .

[3]  D. Park,et al.  The Y-combinator in Scott''s Lambda-calculus Models , 1976 .

[4]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[5]  Samuel N. Kamin Inheritance in smalltalk-80: a denotational definition , 1988, POPL '88.

[6]  Peter D. Mosses,et al.  On Proving Limiting Completeness , 1987, SIAM J. Comput..

[7]  Samuel N. Kamin Programming languages - an interpreter-based approach , 1990 .

[8]  L. C. Dillenback,et al.  Syracuse University , 1939, The Grants Register 2022.

[9]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[10]  Carl A. Gunter Semantics of programming languages: structures and techniques , 1993, Choice Reviews Online.

[11]  Gordon D. Plotkin,et al.  The category-theoretic solution of recursive domain equations , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[12]  Robert M. Keller,et al.  Approaching Distributed Database Implementations through Functional Programming Concepts , 1985, ICDCS.

[13]  Peter Wegner Dimensions of object-based language design , 1987, OOPSLA 1987.

[14]  William R. Cook,et al.  A denotational semantics of inheritance , 1989 .

[15]  Christopher P. Wadsworth,et al.  The Relation Between Computational and Denotational Properties for Scott's Dinfty-Models of the Lambda-Calculus , 1976, SIAM J. Comput..

[16]  Craig Schaffert,et al.  CLU Reference Manual , 1984, Lecture Notes in Computer Science.

[17]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[18]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[19]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[20]  Robert Milne The Formal Semantics of Computer Languages and their Implementations , 1974 .

[21]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[22]  John C. Reynolds,et al.  On the Relation between Direct and Continuation Semantics , 1974, ICALP.

[23]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[24]  Uday S. Reddy,et al.  Objects as closures: abstract semantics of object-oriented languages , 1988, LISP and Functional Programming.

[25]  I. G. BONNER CLAPPISON Editor , 1960, The Electric Power Engineering Handbook - Five Volume Set.

[26]  Tricia Walker,et al.  Computer science , 1996, English for academic purposes series.