Haskell boards the ferry: database-supported program execution for Haskell

  • Authors:
  • George Giorgidze;Torsten Grust;Tom Schreiber;Jeroen Weijers

  • Affiliations:
  • Wilhelm-Schickard-Institut für Informatik, Eberhard Karls Universität Tübingen;Wilhelm-Schickard-Institut für Informatik, Eberhard Karls Universität Tübingen;Wilhelm-Schickard-Institut für Informatik, Eberhard Karls Universität Tübingen;Wilhelm-Schickard-Institut für Informatik, Eberhard Karls Universität Tübingen

  • Venue:
  • IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.