A Data Flow Language for Hybrid Query and Programming Languages

  • Kristoffer H. Rose
  • Lionel Villard
  • Naoto Sato
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7294)


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.


Item List Relational Algebra Query Optimization Data Query Denotational Semantic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, A.V., Ullman, J.D.: Universality of data retrieval languages. In: Proceedings of the 6th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL 1979, pp. 110–119. ACM, New York (1979)CrossRefGoogle Scholar
  2. 2.
    Appel, A.W.: SSA is functional programming. ACM SIGPLAN Notices 33(4), 17–20 (1998)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Boag, S., Chamberlain, D., Fernández, M.F., Florescu, D., Robie, J., Siméon, J.: XQuery 1.0: An XML query language. W3C recommendation. World Wide Web Consortium (December 2010)Google Scholar
  4. 4.
    Box, D., Hejlsberg, A.: Linq (language integrated query) (2007)Google Scholar
  5. 5.
    Buneman, P., Libkin, L., Suciu, D., Tannen, V., Wong, L.: Comprehension syntax. SIGMOD Record 23(1), 87–96 (1994)CrossRefGoogle Scholar
  6. 6.
    Codd, E.F.: A relational model of data for large shared data banks. Commun. ACM 13, 377–387 (1970)zbMATHCrossRefGoogle Scholar
  7. 7.
    Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Kenneth Zadeck, F.: Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems 13(4), 451–490 (1991)CrossRefGoogle Scholar
  8. 8.
    Dean, J., Ghemawat, S.: MapReduce: Simplified data processing on large clusters. In: Sixth Symposium on Operating System Design and Implementation (OSDI), San Francisco, CA (December 2004)Google Scholar
  9. 9.
    Ghelli, G., Onose, N., Rose, K., Siméon, J.: A Better Semantics for XQuery with Side-Effects. In: Arenas, M. (ed.) DBPL 2007. LNCS, vol. 4797, pp. 81–96. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  10. 10.
    Ghelli, G., Onose, N., Rose, K., Simeon, J.: Xml query optimization in the presence of side effects. In: Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data, Vancouver, Canada, pp. 339–352 (2008)Google Scholar
  11. 11.
    Hutton, G.: Higher-order functions for parsing. Journal of Functional Programming 2(3), 323–343 (1992)MathSciNetzbMATHCrossRefGoogle Scholar
  12. 12.
  13. 13.
    Jones, S.P., Wadler, P.: Comprehensive comprehensions. In: Haskell Workshop, Freiburg, Germany (September 2007)Google Scholar
  14. 14.
    Kelsey, R.: A correspondence between continuation passing style and static single assignment form. In: ACM SIGPLAN Notices, pp. 13–22. ACM Press (1995)Google Scholar
  15. 15.
    Meijer, E.: The world according to linq. ACM Queue (2011)Google Scholar
  16. 16.
    Ohori, A., Ueno, K.: Making standard ml a practical database programming language. In: ICFP (2011)Google Scholar
  17. 17.
  18. 18.
    Raskovsky, M.R.: Denotational semantics as a specification of code generators. In: Proceedings of the 1982 SIGPLAN Symposium on Compiler Construction, SIGPLAN, Boston, Massachusetts, pp. 230–244. ACM (1982)Google Scholar
  19. 19.
    Re, C., Siméon, J., Fernández, M.F.: A complete and efficient algebraic compiler for XQuery. In: ICDE 2006—The 22nd International Conference on Data Engineering, Atlanta, Georgia, USA (April 2006)Google Scholar
  20. 20.
    Robie, J., Brantner, M., Florescu, D., Fourny, G., Westmann, T.: JSONiq (2011),
  21. 21.
    Snelson, J., Chamberlin, D., Engovatov, D., Florescu, D., Ghelli, G., Melton, J., Siméon, J.: Xquery scripting extension 1.0. W3c working draft. World Wide Web Consortium (April 2010)Google Scholar
  22. 22.
    Soulé, R., Hirzel, M., Grimm, R., Gedik, B., Andrade, H., Kumar, V., Wu, K.-L.: A Universal Calculus for Stream Processing Languages. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 507–528. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  23. 23.
    Squeryl: A scala orm and dsl for talking with databases with minimum verbosity and maximum type safetyGoogle Scholar
  24. 24.
    Wong, L.: Kleisli, a functional query system. Journal of Functional Programming 10(1), 19–56 (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Kristoffer H. Rose
    • 1
  • Lionel Villard
    • 1
  • Naoto Sato
    • 2
  1. 1.IBM Thomas J. Watson Research CenterUSA
  2. 2.IBM Research TokyoJapan

Personalised recommendations