Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Plugging Haskell In
[go: Go Back, main page]

Blue PiLlS

Plugging Haskell In

André Pang Don Stewart, Sean Seefried and Manuel M. T. Chakravarty
CSIRO
Information & Communication Technologies
Sydney, Australia
School of Computer Science and Engineering
University of New South Wales
Sydney, Australia


The copyright for the papers is held by the authors or by the publisher. The papers are provided for personal use only; other use requires the explicit permission of the copyright holder.

Accepted for the Haskell Workshop, 2004.

Abstract

Extension languages enable users to expand the functionality of an application without touching its source code. Commonly, these languages are dynamically typed languages, such as Lisp, Python, or domain-specific languages, which support runtime plugins via dynamic loading of components. We show that Haskell can be comfortably used as a statically typed extension language, and that it can support type-safe dynamic loading of plugins using dynamic types. Moreover, we discuss how plugin support is especially useful to applications where Haskell is used as an embedded domain-specific language (EDSL). We explain how to realise type-safe plugins using dynamic types, runtime compilation, and dynamic linking, exploiting infrastructure provided by the Glasgow Haskell Compiler. We demonstrate the practicability of our approach with several applications that serve as running examples.

Full Text

The full text of the paper can be downloaded: (ps.gz ,ps ,pdf)

hs-plugins Library

The source code for the hs-plugins library referenced in the paper can be downloaded from:

http://www.cse.unsw.edu.au/~dons/hs-plugins

Check the nightly cvs snapshots for the latest code.

BibTeX Entry

@inproceedings{PSSC04,
 author = {Andr{\'e} Pang and Don Stewart and Sean Seefried and Manuel M. T. Chakravarty},
 title = {Plugging Haskell In},
 booktitle = {Proceedings of the ACM SIGPLAN workshop on Haskell},
 year = {2004},
 isbn = {1-58113-850-4},
 pages = {10--21},
 location = {Snowbird, Utah, USA},
 doi = {http://doi.acm.org/10.1145/1017472.1017478},
 publisher = {ACM Press},
}

Example Applications

The full source code for the examples described in the paper can be viewed: To compile and run these examples, download the hs-plugins library from the link above, which contains these examples with the necessary make infrastructure to compile and link against the plugins library. They live in the examples/ subdirectory of hs-plugins.
Mon Aug 9 09:24:53 EST 2004