Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
GALILEO: a strongly-typed, interactive conceptual language
ACM Transactions on Database Systems (TODS)
Computer
Properties and update semantics of consistent views
ACM Transactions on Database Systems (TODS)
Type inference in a database programming language
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
ML with extended pattern matching and subtypes
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Database programming in Machiavelli—a polymorphic language with static type inference
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Static type inference for parametric classes
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Type checking records and variants in a natural extension of ML
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Existentially quantified types as a database viewing mechanism
EDBT '90 Proceedings of the 2nd international conference on extending database technology: Advances in Database Technology
Data structures and data types of object-oriented databases
Data Engineering
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Updating relational databases through object-based views
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Aspects: extending objects to support multiple, independent roles
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
A type system that reconciles classes and extents
DBPL3 Proceedings of the third international workshop on Database programming languages : bulk types & persistent data: bulk types & persistent data
A compilation method for ML-style polymorphic record calculi
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Polymorphism and type inference in database programming
ACM Transactions on Database Systems (TODS)
Schema Virtualization in Object-Oriented Databases
Proceedings of the Fourth International Conference on Data Engineering
Object Views: Extending the Vision
Proceedings of the Sixth International Conference on Data Engineering
FAD, a Powerful and Simple Database Language
VLDB '87 Proceedings of the 13th International Conference on Very Large Data Bases
An Object Data Model with Roles
VLDB '93 Proceedings of the 19th International Conference on Very Large Data Bases
Logical Foundations of Object-Oriented and Frame-Based Languages
Logical Foundations of Object-Oriented and Frame-Based Languages
Static detection of security flaws in object-oriented databases
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
Viewpoints in object database systems
ISAW '96 Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
View Operations on Objects with Roles for a Statically Typed Database Language
IEEE Transactions on Knowledge and Data Engineering
A programmable editor for developing structured documents based on bidirectional transformations
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
A programmable editor for developing structured documents based on bidirectional transformations
Higher-Order and Symbolic Computation
Extended virtual type for a multiple-type object with repeating types
KES'06 Proceedings of the 10th international conference on Knowledge-Based Intelligent Information and Engineering Systems - Volume Part II
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Hi-index | 0.00 |
We present a typed polymorphic calculus that supports a general mechanism for view definition and object sharing among classes. In this calculus, a class can contain inclusion specifications of objects from other classes. Each such specification consists of a predicate determining the subset of objects to be included and a viewing function under which those included objects are manipulated. Both predicates and viewing functions can be any type consistent programs definable in the polymorphic calculus. Inclusion specifications among classes can be cyclic, allowing mutually recursive class definitions. These features achieve flexible view definitions and wide range of class organizations in a compact and elegant way. Moreover, the calculus provides a suitable set of operations for views and classes so that the programmer can manipulate views and classes just the same way as one deals with ordinary records and sets.The proposed calculus uniformly integrates views and classes in a polymorphic type system of a database programming language similar to Machiavelli. The calculus has a type inference algorithm that relieves the programmer from complicated type declarations of views and classes. The polymorphic type system of the calculus is also shown to be sound, which guarantees complete static check of type consistency of programs involving classes and views. Through these properties, the programmer can enjoy full advantages of polymorphism and type inference when writing object-oriented database programs.