Affiliation:
1. Dipartimento di Statistica, Informatica, Applicazioni, Università di Firenze, ItalyFirenze
Abstract
AbstractProviding IDE support for a programming language or a DSL (Domain Specific Language) helps the users of the language to be more productive and to have an immediate feedback on possible errors in a program. Static types can drive IDE mechanisms such as the content assist to propose sensible completions in a given program context. Types can also be used to enrich other typical IDE parts such as the Outline and theHovering pop-ups. In this paper, we focus on statically typed imperative languages, adopting some form of type inference. We present a few general patterns for implementing efficient type systems, focusing on type error recovery. This way, the type system is able to type as many parts of the program as possible, keeping a good IDE experience. Type error messages will be placed on the important parts of the program, avoiding cascading errors that can confuse the user. We show two case studies:we apply the presented patterns to implement the type system of two statically typed DSLs, a simple expression language and a reduced Java-like language, with OOP features. We use Xtext as the language workbench for implementing the compiler and the IDE support andXsemantics, a DSL for implementing type systems using a syntax that mimics formal systems. The patterns shown in the paper can be reused also for implementing languages with other language frameworks.
Reference76 articles.
1. Type error slicing in implicitly typed higherorder languages of;Haack;Science Computer Programming,2004
2. Accelerating the creation of customized language - Specific IDEs in Eclipse In;Charles,2009
3. Improved Type Error Reporting In Workshop on Implementation of Functional Informatik - Berichte;Yang;Languages,2000
4. Implementing Java - like languages in Xtext with In OOPS SAC;Bettini,2013
5. von implementing domain - specific languages for Java In;Efftinge,2012
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献