Program (2mb PDF)

  Invited Speakers
  Research Papers
  Student Research Comp.
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
  Practitioner Reports
  Lightning Talks
  Instant Arts School Exp.
Other Events
Resort Map (364kb PDF)
Resort Map (JPG)



view, help

"Testing Domain-Specific Languages in Eclipse"




  > Demonstrations

 : Tuesday

Testing Domain-Specific Languages in Eclipse

Courtyard (room A)
Tuesday, 15:00, 45 minutes



Hui Wu, The University of Alabama at Birmingham
Jeff Gray, The University of Alabama at Birmingham

Demonstration number: 7

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.