DOMain Specific Type Error Diagnosis (DOMSTED)

DOMain Specific Type Error Diagnosis (DOMSTED)
复制标题

DOMain 特定类型错误诊断 (DOMSTED)

DOI:
--
复制
发表时间:
2014
期刊:
--
影响因子:
--
通讯作者:
Jurriaan Hage
Jurriaan Hage
中科院分区:
--
文献类型:
--
作者:
Jurriaan Hage

文献摘要

被引文献

相似文献

领域专用语言(DSL)有可能减少编程的工作量,并使程序更容易理解和维护。出于各种原因,研究人员建议将DSL(当时称为EDSL)嵌入到通用宿主语言中。这种嵌入的一个重要缺点是很难使类型错误诊断领域感知,因为不一致性默认情况下是根据宿主语言来解释的。在早期的工作中,我们已经开发了一种方法,使类型错误诊断领域特定的,我们已经应用到Haskell 98的方法。Haskell编程的实践表明,目前应用程序和库使用的类型系统功能远远超出了Haskell 98。这是该项目旨在解决的一个实际和根本的挑战。它是实用的,因为只有在满足这一挑战之后,我们的想法才能在日常编程中使用;它是基础的,因为对Haskell的类型系统功能(如GADT和类型族)的基本理解是必要的,以实现对类型系统的必要控制,然后将其传递给EDSL开发人员。我们的工作将使EDSL开发人员能够安全,透明和非侵入性地提供特定领域的类型错误诊断。它是透明的,因为规则的设计者不需要对编译器的内部有深入的了解;它是安全的,因为它不能用来规避强类型系统;它是非侵入性的,因为EDSL代码本身不需要改变。本项目的工作将由一名博士生在本文第一作者的监督下与乌得勒支大学的Atze Dijkstra和其他人合作进行。
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.