Rascal: one-stop shop for metaprogramming

Rascal is a general metaprogramming language, facilitating programmers in analyzing, transforming and generating source code.

Rascal is a general metaprogramming language, facilitating programmers in analyzing, transforming and generating source code. It has been developed by the Software Analysis and Transformation (SWAT) group to support research in software engineering, helping in experimenting with and constructing new kinds of tools.

Rascal is used by researchers in programming languages and software engineering, and taught at several universities in the Netherlands and abroad in master courses on software evolution. It serves as a foundation in national and international research projects as well as co-funded valorization projects, and is applied in solving contract research questions. Some notable projects are, for example, run at ING bank and Philips Healthcare.

At the same time, Rascal is a mature and practically useful package, available as a plugin for the Eclipse IDE, and as such widely used by software engineers in software construction and maintenance -- think constructing parsers for programming languages, analyzing and transforming existing source code, and defining new domain-specific languages (DSLs) with full IDE support.