60
IRUS TotalDownloads
Altmetric
Safely Speaking in Tongues: Statically Checking Domain Specific Languages in Haskell
File | Description | Size | Format | |
---|---|---|---|---|
static-check-dsls-in-Haskell.pdf | Accepted version | 161.46 kB | Adobe PDF | View/Open |
Title: | Safely Speaking in Tongues: Statically Checking Domain Specific Languages in Haskell |
Authors: | Sackman, M Eisenbach, S |
Item Type: | Conference Paper |
Abstract: | Haskell makes it very easy to build and use Domain Specific Languages (DSLs). However, it is frequently the case that a DSL has invariants that can not be easily enforced statically, resulting in runtime checks. This is a great pity given HaskellÆs rich and powerful type system and leads to all the usual problems of dynamic checking. We believe that Domain Specific Languages are becoming more popular: the internet itself is a good example of many DSLs (HTML, CSS, JavaScript, Flash, etc), and more seem to be being added every day; most graphics cards already accept programs written in the DSL OpenGL Shading Language (GLSL); and the predicted growth of heterogeneous CPUs (for example IBMÆs Cell CPU) will demand many different DSLs for the various programming models and instruction sets that become available. We present a technique that allows invariants of any given DSL to be lifted into the Haskell type system. This removes the need for runtime checks of the DSL and prevents programs that violate the invariants of the DSL from ever being compiled or executed. As a result we avoid the pitfalls of dynamic checking and return the user of the DSL to the safety and tranquillity of the strongly statically typed Haskell world. |
Issue Date: | 31-Mar-2009 |
URI: | http://hdl.handle.net/10044/1/5842 |
Publisher Link: | http://ldta.info/2009/index.html |
Presented At: | Workshop on Language Descriptions Tools and Applications (LDTA) 2009 |
Start Page: | 34 |
End Page: | 51 |
Copyright Statement: | © 2009 Elsevier. NOTICE: this is the author’s version of a work that was accepted for publication in (Journal unknown). Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication |
Conference Location: | York, UK |
Appears in Collections: | Distributed Software Engineering Computing |