A Data Flow Language for Hybrid Query and Programming Languages

In this paper, we present trix, which formalizes the data flow mechanisms used in low level descriptions of algorithms that implement data base as well as programming constructs. We show that the data flow formalism permits concise expression of physical data base operators and functional evaluation, and that the formalism permits unified reasoning about the equivalence of programs of each and all of these paradigms. Specifically, we present trix formally, illustrate how programming patterns (specifically queries) translate into trix, and use "data flow equivalence" equational reasoning to show some common optimizations correct. Finally we show how the use of trix as an intermediate language can improve performance for some standard benchmarks.

[1]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[2]  Nicola Onose,et al.  A Better Semantics for XQuery with Side-Effects , 2007, DBPL.

[3]  Nicola Onose,et al.  XML query optimization in the presence of side effects , 2008, SIGMOD Conference.

[4]  Andrew W. Appel,et al.  SSA is functional programming , 1998, SIGP.

[5]  Limsoon Wong,et al.  Kleisli, a functional query system , 2000, J. Funct. Program..

[6]  Richard A. Kelsey A correspondence between continuation passing style and static single assignment form , 1995 .

[7]  Graham Hutton,et al.  Higher-order functions for parsing , 1992, Journal of Functional Programming.

[8]  Robert Grimm,et al.  A Universal Calculus for Stream Processing Languages , 2010, ESOP.

[9]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

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

[11]  Christopher Ré,et al.  A Complete and Efficient Algebraic Compiler for XQuery , 2006, 22nd International Conference on Data Engineering (ICDE'06).

[12]  Alfred V. Aho,et al.  Universality of data retrieval languages , 1979, POPL.

[13]  Dan Suciu,et al.  Comprehension syntax , 1994, SGMD.

[14]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[15]  Sebastian Maneth,et al.  Efficient Memory Representation of XML Documents , 2005, DBPL.

[16]  Martin R. Raskovsky Denotational semantics as a specification of code generators , 1982, SIGPLAN '82.

[17]  Trey Nash LINQ: Language Integrated Query , 2010 .

[18]  Atsushi Ohori,et al.  Making standard ML a practical database programming language , 2011, ICFP '11.

[19]  Simon L. Peyton Jones,et al.  Comprehensive comprehensions , 2007, Haskell '07.

[20]  Erik Meijer The world according to LINQ , 2011, CACM.