Prototyping domain-specific language semantics

Domain-specific languages (DSLs) need semantics. For an external, executable, metamodel-based DSL, this can be done in an operational or a translational way. In my dissertation, I develop a framework that allows both. It provides flexibility for semantics description in two axes: on the one axis, operational semantics is fixed and one can choose between different description languages (QVT, Java, Prolog, Abstract State Machines, and Scheme); on the other axis, Scheme is fixed and one can choose between operational and translational semantics. Using operational semantics, DSL program interpretation can be animated and debugged. Equivalence of operational semantics described with different languages can be tested by comparing execution traces.