DOMain Specific Type Error Diagnosis (DOMSTED)

Domain-specic languages (DSLs) have the potential both to reduce the eort of programming, and to result in programs that are easier to understand and maintain. For various good reasons, researchers have proposed to embed DSLs (then called EDSLs) into a general purpose host language. An important disadvantage of such an embedding is that it is very hard to make type error diagnosis domain-aware, because inconsistencies are by default explained in terms of the host language. In earlier work we have developed a method to make type error diagnosis domain-specic, and we have applied the method to Haskell 98. The practice of Haskell programming shows that currently applications and libraries employ type system features well beyond those oered by Haskell 98. Here lie both a practical and fundamental challenge that the project aims to address. It is practical because only after meeting this challenge, can our ideas be employed in everyday programming; it is fundamental because an essential understanding of Haskell's type system features, such as GADTs and type families, is necessary to achieve the necessary control over the type system that can then be passed on to the EDSL developer. Our work will enable EDSL developers to safely, transparently and noninvasively provide domain specic type error diagnosis. It is transparent because the designer of the rules does not need to have intimate knowledge of the internals of the compiler, safe because it cannot be used to circumvent the strong type system, and non-invasive since the EDSL code itself need not be changed. The work in this project will be undertaken by a PhD student under the supervision of the rst author of this paper, in collaboration with Atze Dijkstra and others at Utrecht University.

[1]  Jurriaan Hage,et al.  Strategies for Solving Constraints in Type and Effect Systems , 2009, Electron. Notes Theor. Comput. Sci..

[2]  Jurriaan Hage,et al.  Security type error diagnosis for higher-order, polymorphic languages , 2013, PEPM '13.

[3]  Shane Markstrum,et al.  JavaCOP: Declarative pluggable types for java , 2010, TOPL.

[4]  Jurriaan Hage,et al.  Improving type error messages for generic java , 2009, PEPM '09.

[5]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[6]  Peter J. Stuckey,et al.  Type Classes and Constraint Handling Rules , 2000, ArXiv.

[7]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[8]  Bastiaan Heeren,et al.  Top quality type error Messages , 2005 .

[9]  Torsten Grust,et al.  Bringing back monad comprehensions , 2012, Haskell '11.

[10]  Simon L. Peyton Jones,et al.  OutsideIn(X) Modular type inference with local assumptions , 2011, J. Funct. Program..

[11]  Jurriaan Hage,et al.  Corrective hints for type incorrect generic Java programs , 2010, PEPM '10.

[12]  W. Taha,et al.  Plenary talk III Domain-specific languages , 2008, 2008 International Conference on Computer Engineering & Systems.

[13]  Jurriaan Hage,et al.  Scripting the type inference process , 2003, ICFP '03.

[14]  Jurriaan Hage,et al.  Heuristics for Type Error Discovery and Recovery , 2006, IFL.

[15]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[16]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[17]  S. Doaitse Swierstra,et al.  The architecture of the Utrecht Haskell compiler , 2009, Haskell.

[18]  Mark P. Jones A Theory of Qualified Types , 1992, ESOP.

[19]  S. Doaitse Swierstra Construct Your Own Favorite Programming Language , 2009 .

[20]  M. Sheeran,et al.  RAW FP : Productivity and Performance through Resource Aware Functional Programming , 2010 .

[21]  Jurriaan Hage,et al.  Type Class Directives , 2005, PADL.

[22]  Simon Peyton Jones,et al.  The Glasgow Haskell Compiler , 2012 .

[23]  Aruna Raja,et al.  Domain Specific Languages , 2010 .

[24]  Fairouz Kamareddine,et al.  A constraint system for a SML type error slicer , 2010 .