2011 | OriginalPaper | Chapter
Haskell Boards the Ferry
Database-Supported Program Execution for Haskell
Authors : George Giorgidze, Torsten Grust, Tom Schreiber, Jeroen Weijers
Published in: Implementation and Application of Functional Languages
Publisher: Springer Berlin Heidelberg
Activate our intelligent search to find suitable subject content or patents.
Select sections of text to find matching patents with Artificial Intelligence. powered by
Select sections of text to find additional relevant content using AI-assisted search. powered by
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 database-supported 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.