Abstract
We argue that intensional
object identity
in object-oriented programming languages and databases is best defined operationally by side-effect semantics. A corollary is that "functional" objects have extensional semantics. This model of object identity, which is analogous to the normal forms of relational algebra, provides cleaner semantics for the value-transmission operations and built-in primitive equality predicate of a programming language, and eliminates the confusion surrounding "call-by-value" and "call-by-reference" as well as the confusion of multiple equality predicates.Implementation issues are discussed, and this model is shown to have significant performance advantages in persistent, parallel, distributed and multilingual processing environments. This model also provides insight into the "type equivalence" problem of Algol-68, Pascal and Ada.
Publisher
Association for Computing Machinery (ACM)
Reference136 articles.
1. Abelson H. & Sussman G.J. Structure and Interpretation of Computer Programs. MIT Press Camb. MA 1985. Abelson H. & Sussman G.J. Structure and Interpretation of Computer Programs . MIT Press Camb. MA 1985.
2. Object identity as a query language primitive
3. AdaLRM: Reference Manual for the Ada® Programming Language. ANSI/MIL-STD-1815A-1983 U.S. Gov't Printing Office Wash. DC 1983. AdaLRM: Reference Manual for the Ada® Programming Language . ANSI/MIL-STD-1815A-1983 U.S. Gov't Printing Office Wash. DC 1983.
4. Object-oriented programming in scheme
5. Agha Gul. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press Camb. MA 1986. Agha Gul. Actors: A Model of Concurrent Computation in Distributed Systems . MIT Press Camb. MA 1986.
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The kingdoms of objects and values;Proceedings of the 2021 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software;2021-10-17
2. Towards an order-aware object comparison;Proceedings of the 24th Brazilian Symposium on Context-Oriented Programming and Advanced Modularity;2020-10-19
3. A history of Clojure;Proceedings of the ACM on Programming Languages;2020-06-12
4. Generating Code with Polymorphic let: A Ballad of Value Restriction, Copying and Sharing;Electronic Proceedings in Theoretical Computer Science;2017-02-07
5. The left hand of equals;Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software;2016-10-20