Grammar-driven generation of domain-specific language testing tools using aspects - Wu, Hui (ProQuest Dissertations & Theses, 2007)
Domain-specific languages (DSLs) assist a software developer (or end-user) in writing a program using idioms that are similar to the abstractions found in a specific problem domain. Testing tool support for DSLs is lacking when compared to the capabilities provided for standard general-purpose languages (GPLs), such as Java and C++. For example, support for debugging and unit testing a program written in a DSL is often non-existent. The lack of a debugger and unit test engine at the proper abstraction level limits an end-user's ability to discover and locate faults in a DSL program. This dissertation describes a grammar-driven technique to build a debugging and unit testing tool generation framework by adaptations to existing DSL grammars. This approach leverages existing GPL testing tools to indirectly exercise the end-user's debug and test intentions at the DSL level. The adaptations to DSL grammars represent the hooks needed to interface with a supporting infrastructure constructed for an Integrated Development Environment (IDE) that assists in debugging and unit testing a program written in a DSL. The contribution represents a coordinated approach to bring essential software tools (e.g., debuggers and test engines) to different types of DSLs (e.g., imperative, declarative, and hybrid). This approach hides from the end-users the accidental complexities associated with expanding the focus of a language environment to include testing tools. During the testing tool generation process, crosscutting concerns were observed in representations of DSL grammars. To address these particular crosscutting concerns, an investigation into the principles of aspect-oriented programming applied to grammars has been conducted. A domain-specific aspect language, called AspectG, has been designed and implemented, which is focused within the domain of language specification. This dissertation outlines the challenges and issues that exist when designing aspect languages that assist in modularizing crosscutting concerns in grammars. The research described in the dissertation addresses a long-term goal of empowering end-users with development tools for particular DSL problem domains at the proper level of abstraction without depending on a specific GPL.