Equal rights for functional objects or, the more things change, the more they are the same
- 1 October 1993
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN OOPS Messenger
- Vol. 4 (4) , 2-27
- https://doi.org/10.1145/165593.165596
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.Keywords
This publication has 79 references indexed in Scilit:
- A theory of type polymorphism in programmingPublished by Elsevier ,2003
- Abstract types have existential typeACM Transactions on Programming Languages and Systems, 1988
- Types and persistence in database programming languagesACM Computing Surveys, 1987
- A structural view of the Cedar programming environmentACM Transactions on Programming Languages and Systems, 1986
- MULTILISP: a language for concurrent symbolic computationACM Transactions on Programming Languages and Systems, 1985
- Tabulation Techniques for Recursive ProgramsACM Computing Surveys, 1980
- On the implementation of constantsInformation Processing Letters, 1979
- Testing equality in lisp-like environmentsBIT Numerical Mathematics, 1978
- Elimination of recursive calls using a small table of “randomly” selected function valuesBIT Numerical Mathematics, 1976
- Optimization of very high level languages—I: Value transmission and its corollariesComputer Languages, 1975