Many automated software engineering tools require tight integration of techniques for source code analysis and manipulation. State-of-the-art tools exist for both, but the domains have remained notoriously separate because different computational paradigms fit each domain best. This impedance mismatch hampers the development of each new problem solution since desired functionality and scalability can only be achieved by repeated, ad hoc, integration of different techniques. Rascal is a domain-specific language that takes away most of this boilerplate by providing high-level integration of source code analysis and manipulation on the conceptual, syntactic, semantic and technical level. We give an overview of the language and assess its merits by implementing a complex refactoring.
IEEE
A. Walenstein , S. Schuppe
IEEE International Workshop on Source Code Analysis and Manipulation
Software Engineering

Klint, P., van der Storm, T., & Vinju, J. (2009). Rascal: A domain specific language for source code analysis and manipulation. In A. Walenstein & S. Schuppe (Eds.), Proceedings of IEEE International Working Conference on Source Code Analysis and Manipulation 2009. IEEE.