Domain-specific languages: an annotated bibliography
ACM SIGPLAN Notices
Debugging programs after structure-changing transformation
Debugging programs after structure-changing transformation
Weaving a debugging aspect into domain-specific language grammars
Proceedings of the 2005 ACM symposium on Applied computing
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
Grammar-driven generation of domain-specific language debuggers
Software—Practice & Experience
Hi-index | 0.00 |
Domain-specific languages (DSLs) use idioms that are closer to the abstractions found in a specific problem domain. Tool support for testing and debugging DSLs is lacking when compared to the capabilities provided for standard general purpose languages (GPLs). In fact, support for debugging and testing a program written in a DSL is often nonexistent. A common approach for implementing DSLs is to create a pre-processor that translates the DSL source into an object-oriented GPL, such as Java or C++. A DSL grammar serves as the primary artifact for defining DSLs from a higher level of abstraction. This demonstration is focused on a grammar-driven technique to build a testing tool from existing DSL grammars. The DSL grammars are used to generate the hooks needed to interface with a supporting infrastructure written for Eclipse that assists in testing and debugging a program written in a DSL.This demonstration will introduce a framework to automate the generation of DSL testing tools (e.g., debugger and unit test engine) for imperative and declarative DSLs. Our framework provides Eclipse plug-ins for defining DSLs, along with a translator and interface generator that maps the DSL debugging/testing perspective to the underlying GPL debugging/testing services. This demonstration will provide evidence to support the feasibility and applicability of using the information derived from DSL grammars and existing software components to support end-user debugging and testing in a domain friendly programming environment.