On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
The relational model with relation-valued attributes
Information Systems
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
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
A recursive algebra for nested relations
Information Systems
The semantics of programming languages: an elementary introduction using structural operational semantics
Converting nested algebra expressions into flat algebra expressions
ACM Transactions on Database Systems (TODS)
Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
ACM SIGMOD Record
PODS '94 Proceedings of the thirteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Recent design trade-offs in SQL3
ACM SIGMOD Record
Naturally Embedded Query Languages
ICDT '92 Proceedings of the 4th International Conference on Database Theory
On Two Forms of Structural Recursion
ICDT '95 Proceedings of the 5th International Conference on Database Theory
Some Properties of Query Languages for Bags
DBLP-4 Proceedings of the Fourth International Workshop on Database Programming Languages - Object Models and Languages
Querying nested collections
On better understanding OCL collections or an OCL ordered set is not an OCL set
MODELS'09 Proceedings of the 2009 international conference on Models in Software Engineering
Strengthening SAT-based validation of UML/OCL models by representing collections as relations
ECMFA'12 Proceedings of the 8th European conference on Modelling Foundations and Applications
Hi-index | 0.00 |
Bulk data types such as sets, bags, and lists are an important component of a modern query language. It is desirable that operations on one bulk data type (such as sets) that have analogous counterparts in other bulk data types (such as bags and list) be expressed using the same expression. This kind of uniformity is achieved only to a limited degree in object-oriented languages, as these languages have the type information loss problem. Languages based on parametric polymorphism achieve this uniformity in a much better way, but only upto "bracket-switching." That is, in these languages, a query over bags that is analogous to a query over sets, are identical upto interchanging the set and bag brackets. This paper presents a simple extension to a popular parametric polymorphic type system. We show that it is possible to construct a query language around this type system so that the same expression can be used to implement analogous queries across sets, bags, and lists. Furthermore, this uniformity is achieved without any loss in type information.