Equal rights for functional objects or, the more things change, the more they are the same
ACM SIGPLAN OOPS Messenger
Towards an effective calculus for object query languages
SIGMOD '95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data
How to Comprehend Queries Functionally
Journal of Intelligent Information Systems - Special issue on functional approach to intelligent information systems
Optimizing Queries with Object Updates
Journal of Intelligent Information Systems - Special issue on functional approach to intelligent information systems
Automation and Remote Control
Hi-index | 0.00 |
One of the central concepts in the field of object-oriented databases is object identity, which nicely captures mutability, sharing and cyclic structures. Although the concept is intuitively clear, its precise semantics has not yet been well established. This seems to be a major obstacle to achieve a clean integration of object-oriented databases and other paradigms of database programming in a modern type system of a programming language. This paper attempts to establish a mathematical model for object identity in a framework of typed pure functional languages.We argue that the properties of object identity are accurately captured by references as they are implemented in Standard ML. We then present a method to interpret an impure higher-order functional language with references in a typed pure functional language using Moggi's recent result on the categorical structure of monads. This establishes a precise semantics to the primitive operations for references and allows us to analyze various property of object identity. We investigate the interaction between set data types and object identity. Since the interpretation is shown to preserve all the properties of the existing data structures for databases, it enables us to integrate object identity with various existing data models within a type system of a programming language. We show that object identity and a generalized relational model can be uniformly integrated in a programming language.