USENIX Technical Program - Abstract - Domain-Specific Languages 99
Domain Specific Embedded Compilers
Daan Leijen and Erik Meijer, University of Utrecht
Abstract
Domain-specific embedded languages (DSELs) expressed in higher-order,
typed (HOT) languages provide a composable framework for
domain-specific abstractions. Such a framework is of greater utility
than a collection of stand-alone domain-specific languages. Usually,
embedded domain specific languages are build on top of a set of domain
specific primitive functions that are ultimately implemented using
some form of foreign function call. We sketch a general design pattern
for embedding client-server style services into Haskell using a domain
specific embedded compiler for the server's source language. In
particular we apply this idea to implement Haskell/DB, a domain
specific embdedded compiler that dynamically generates of SQL queries
from monad comprehensions, which are then executed on an arbitrary
ODBC database server.
|