2013
Modularizing a DSL implementation with Rascal
Publication
Publication
To make compilers more maintainable, one could build the language implementation in a modular way. This would mean adding only new les to the existing base language. Rascal is a language workbench that supports this for Domain Specific Languages (DSLs), as claimed
by it's developers. To test this, a DSL is build to verify this claim. The language built, is a re-implementation of the existing DSL Derric, a forensic DSL to describe le formats and to generate a Java class to test files if they conform to this format. During implementation a
number of issues came forward. There is no override-keyword for functions in Rascal; developers cannot add cases to switch or visit statements later; it is not possible to rename imports; string templates are closed for modification and modules are copied often just to change just one import. Most of these problems generate duplication. In this thesis for four of the five issues, modication of Rascal is suggested. Only the closed switch and visit statements can already be
remedied by using Pattern Based Dispatch, a way of defining a function multiple times, based on the input value. This research concludes by
confirming the claim by the creators of Rascal.
Additional Metadata | |
---|---|
T. van der Storm (Tijs) , J. van den Bos (Jeroen) | |
Organisation | Software Analysis and Transformation |
Timmer, J. (2013, January). Modularizing a DSL implementation with Rascal. |