Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Compiling collection-oriented languages onto massively parallel computers
Journal of Parallel and Distributed Computing - Massively parallel computation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Domain specific embedded compilers
Proceedings of the 2nd conference on Domain-specific languages
More types for nested data parallel programming
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
A foundation for embedded languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
MIL primitives for querying a fragmented world
The VLDB Journal — The International Journal on Very Large Data Bases
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Kleisli, a functional query system
Journal of Functional Programming
LINQ: reconciling object, relations and XML in the .NET framework
Proceedings of the 2006 ACM SIGMOD international conference on Management of data
Proceedings of the 2006 workshop on ML
A SQL: 1999 code generator for the pathfinder xquery compiler
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
Data parallel Haskell: a status report
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Why it's nice to be quoted: quasiquoting for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
FERRY: database-supported program execution
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
Let SQL drive the XQuery workhorse (XQuery join graph isolation)
Proceedings of the 13th International Conference on Extending Database Technology
Links: web programming without tiers
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Nikola: embedding compiled GPU functions in Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Avalanche-safe LINQ compilation
Proceedings of the VLDB Endowment
Mixed-level embedding and JIT compilation for an iteratively staged DSL
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
Bringing back monad comprehensions
Proceedings of the 4th ACM symposium on Haskell
Making standard ML a practical database programming language
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Dynamic symbolic computation for domain-specific language implementation
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Algebraic data types for language-integrated queries
DDFP '13 Proceedings of the 2013 workshop on Data driven functional programming
A practical theory of language-integrated query
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Effective quotation: relating approaches to language-integrated query
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Relational database management systems can be used as a coprocessor for general-purpose programming languages, especially for those program fragments that carry out data-intensive and data-parallel computations. In this paper we present a Haskell library for databasesupported program execution. Data-intensive and data-parallel computations are expressed using familiar combinators from the standard list prelude and are entirely executed on the database coprocessor. Programming with the expressive list comprehension notation is also supported. The library, in addition to queries of basic types, supports computations over arbitrarily nested tuples and lists. The implementation avoids unnecessary data transfer and context switching between the database coprocessor and the programming language runtime by ensuring that the number of generated relational queries is only determined by the program fragment's type and not by the database size.