Comprehension syntax

The syntax of comprehensions is very close to the syntax of a number of practical database query languages and is, we believe, a better starting point than first-order logic for the development of database languages. We give an informal account of a language based on comprehension syntax that deals uniformly with a variety of collection types; it also includes pattern matching, variant types and function definition. We show, again informally, how comprehension syntax is a natural fragment of structural recursion, a much more powerful programming paradigm for collection types. We also show that a very small "abstract syntax language" can serve as a basis for the implementation and optimization of comprehension syntax.

[1]  E. F. Codd,et al.  A Relational Model for Large Shared Data Banks , 1970 .

[2]  B. J. Mailloux,et al.  Revised Report on the Algorithmic Language ALGOL 68 , 1976, SIGP.

[3]  Jeffrey D. Ullman,et al.  Principles of Database Systems , 1980 .

[4]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[5]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[6]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[7]  Patrick Valduriez,et al.  FAD, a Powerful and Simple Database Language , 1987, VLDB.

[8]  Catriel Beeri,et al.  On the power of languages for manipulation of complex objects , 1987, VLDB 1987.

[9]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

[10]  François Bancilhon,et al.  A Query Language for the O2 Object-Oriented Database System , 1989, DBPL.

[11]  Peter Buneman,et al.  Database programming in Machiavelli—a polymorphic language with static type inference , 1989, SIGMOD '89.

[12]  Database Programming in Machiavelli - a Polymorphic Language with Static Type Inference , 1989, SIGMOD Conference.

[13]  Paris C. Kanellakis,et al.  Database Theory Column: Query Languages for Complex Object Databases. , 1990 .

[14]  Robin Milner,et al.  Definition of standard ML , 1990 .

[15]  Serge Abiteboul,et al.  Database theory column , 1989, SIGA.

[16]  Philip Wadler,et al.  Comprehending monads , 1990, LISP and Functional Programming.

[17]  Val Tannen,et al.  Logical and Computational Aspects of Programming with Sets/Bags/Lists , 1991, ICALP.

[18]  Peter Buneman,et al.  Structural Recursion as a Query Language , 1992, DBPL.

[19]  Niklaus Wirth,et al.  Pascal User Manual and Report , 1991, Springer New York.

[20]  Limsoon Wong,et al.  Naturally Embedded Query Languages , 1992, ICDT.

[21]  Dirk Van Gucht,et al.  Converting nested algebra expressions into flat algebra expressions , 1992, TODS.

[22]  Dan Suciu Bounded Fixpoints for Complex Objects , 1993 .

[23]  L. Libkin,et al.  Semantic representations and query languages for or-sets , 1993, PODS '93.

[24]  Limsoon Wong,et al.  Some Properties of Query Languages for Bags , 1993, DBPL.

[25]  Limsoon Wong,et al.  Normal forms and conservative properties for query languages over collection types , 1993, PODS.

[26]  Limsoon Wong,et al.  Aggregate Functions, Conservative Extensions, and Linear Orders , 1993, DBPL.

[27]  Peter Buneman The Fast Fourier Transforms as a Database Query , 1993 .

[28]  L. Libkin,et al.  A Bounded Degree Property and Finite-Cofiniteness of Graph Queries , 1993 .

[29]  Dan Suciu,et al.  Fixpoints and Bounded Fixpoints for Complex Objects , 1993 .

[30]  Dan Suciu,et al.  Any algorithm in the complex object algebra with powerset needs exponential space to compute transitive closure , 1994, PODS '94.

[31]  Limsoon Wong,et al.  Conservativity of Nested Relational Calculi with Internal Generic Functions , 1994, Inf. Process. Lett..

[32]  Dan Suciu,et al.  A query language for NC , 1994, PODS '94.

[33]  Harry G. Mairson,et al.  Database Query Languages Embedded in the Typed Lambda Calculus , 1996, Inf. Comput..

[34]  Peter Buneman,et al.  Polymorphism and type inference in database programming , 1996, TODS.