Tracing program transformations with string origins
Presented at the International Conference on Theory and Practice of Model Transformations
Program transformations play an important role in domain-specific languages and model-driven development. Tracing the execution of such transformations has well-known benefits for debugging, visualization and error reporting. In this paper we introduce string origins as a lightweight, generic and portable technique to establish a tracing relation between the textual fragments in the input and output of a program transformation. We discuss the semantics and the implementation of string origins using the Rascal meta programming language as an example. Furthermore, we illustrate the utility of string origins by presenting data structures and operations for tracing generated code, implementing protected regions, performing name resolution, and fixing inadvertent name capture in generated code.
|Keywords||origin tracking, model transformation, traceability|
|ACM||Design Tools and Techniques (acm D.2.2), Processors (acm D.3.4)|
|THEME||Software (theme 1)|
|Project||Next Generation Auditing: Data- Assurance as a serivce|
|Conference||International Conference on Theory and Practice of Model Transformations|
Inostroza Valdera, P.A, van der Storm, T, & Erdweg, S. (2014). Tracing program transformations with string origins.