Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Appel, A.W.: SSA is functional programming. ACM SIGPLAN Notices 33(4), 17–20 (1998)
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)
Box, D., Hejlsberg, A.: Linq (language integrated query) (2007)
Buneman, P., Libkin, L., Suciu, D., Tannen, V., Wong, L.: Comprehension syntax. SIGMOD Record 23(1), 87–96 (1994)
Codd, E.F.: A relational model of data for large shared data banks. Commun. ACM 13, 377–387 (1970)
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)
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)
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)
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)
Hutton, G.: Higher-order functions for parsing. Journal of Functional Programming 2(3), 323–343 (1992)
Ibm db2 v9 sql procedural language (sql pl) (2007), http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.apdv.sql.doc/doc/c0011916.html
Jones, S.P., Wadler, P.: Comprehensive comprehensions. In: Haskell Workshop, Freiburg, Germany (September 2007)
Kelsey, R.: A correspondence between continuation passing style and static single assignment form. In: ACM SIGPLAN Notices, pp. 13–22. ACM Press (1995)
Meijer, E.: The world according to linq. ACM Queue (2011)
Ohori, A., Ueno, K.: Making standard ml a practical database programming language. In: ICFP (2011)
Oracle database 11g pl/sql (2011), http://www.oracle.com/technetwork/database/features/plsql/index.html
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)
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)
Robie, J., Brantner, M., Florescu, D., Fourny, G., Westmann, T.: JSONiq (2011), http://jsoniq.org
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)
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)
Squeryl: A scala orm and dsl for talking with databases with minimum verbosity and maximum type safety
Wong, L.: Kleisli, a functional query system. Journal of Functional Programming 10(1), 19–56 (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rose, K.H., Villard, L., Sato, N. (2012). A Data Flow Language for Hybrid Query and Programming Languages. In: Schrijvers, T., Thiemann, P. (eds) Functional and Logic Programming. FLOPS 2012. Lecture Notes in Computer Science, vol 7294. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29822-6_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-29822-6_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-29821-9
Online ISBN: 978-3-642-29822-6
eBook Packages: Computer ScienceComputer Science (R0)