1993
DOI: 10.1145/165593.165596
|View full text |Cite
|
Sign up to set email alerts
|

Equal rights for functional objects or, the more things change, the more they are the same

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 "… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
13
0
2

Year Published

1998
1998
2016
2016

Publication Types

Select...
5
2

Relationship

0
7

Authors

Journals

citations
Cited by 30 publications
(15 citation statements)
references
References 80 publications
0
13
0
2
Order By: Relevance
“…More to the point, programmers make good use of equality in collections, and (at least in our sample) generally navigate Java's equality contracts successfully: equality is generally based on fully initialised immutable state, and collections can safely rely on stable equality. Proposals such as Baker's EGAL [9], Relation Types [12], and the various schemes for managing object initialisation [18,20,21] may well provide good language support for objects which enter collections, so long as they can cope with the relatively high number of objects performing delayed initialisation; while objects which do not enter collections seem to be adequately served by object identity, as they do not change their equality.…”
Section: Resultsmentioning
confidence: 99%
See 1 more Smart Citation
“…More to the point, programmers make good use of equality in collections, and (at least in our sample) generally navigate Java's equality contracts successfully: equality is generally based on fully initialised immutable state, and collections can safely rely on stable equality. Proposals such as Baker's EGAL [9], Relation Types [12], and the various schemes for managing object initialisation [18,20,21] may well provide good language support for objects which enter collections, so long as they can cope with the relatively high number of objects performing delayed initialisation; while objects which do not enter collections seem to be adequately served by object identity, as they do not change their equality.…”
Section: Resultsmentioning
confidence: 99%
“…Baker [9] presents a very comprehensive conceptual discussion of equality in imperative languages: although phrased in terms of Lisp his discussion is directly relevant to all object-oriented programming languages. Common Lisp, of course, has at least five different equality functions: eq, eql, equal, equalp, =, along with a range of type specific functions such as char-equal, string-equal, and tree-equal [10].…”
Section: Object Identity and Equalitymentioning
confidence: 99%
“…Structural equality of stateless objects is arguably an attractive alternative to general token equality. This is approximately the solution to object equality proposed by Baker [Bak93], who gives an excellent overview of the issue. However, we argue that encapsulation is improved with a unifonn treatment of identity in mutable and immutable objects.…”
Section: Object Creationmentioning
confidence: 90%
“…Therefore we define weak immutability, a sufficient condition under which maximal sharing can work, as follows: for any object o and its updated future value o it holds that o.equals(o ), while observing that not necessarily all fields have to contribute to its equals method. Based on weak immutability, object identity can be defined by the transitive closure of immutable attributes of an object, also known as structural equality [1]. Similarly it follows that all object graphs generated from these classes, if we follow only references to fields that are used by the equals methods, are Directed Acyclic Graphs (DAGs).…”
Section: The Precondition: Weak Immutabilitymentioning
confidence: 99%