60
IRUS Total
Downloads
  Altmetric

Safely Speaking in Tongues: Statically Checking Domain Specific Languages in Haskell

File Description SizeFormat 
static-check-dsls-in-Haskell.pdfAccepted version161.46 kBAdobe PDFView/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