Rascal: From Algebraic Specification to Meta-Programming

Jeroen van den Bos
(CWI)
Mark Hills
(CWI)
Paul Klint
(CWI)
Tijs van der Storm
(CWI)
Jurgen J. Vinju
(CWI)

Algebraic specification has a long tradition in bridging the gap between specification and programming by making specifications executable. Building on extensive experience in designing, implementing and using specification formalisms that are based on algebraic specification and term rewriting (namely Asf and Asf+Sdf), we are now focusing on using the best concepts from algebraic specification and integrating these into a new programming language: Rascal. This language is easy to learn by non-experts but is also scalable to very large meta-programming applications.

We explain the algebraic roots of Rascal and its main application areas: software analysis, software transformation, and design and implementation of domain-specific languages. Some example applications in the domain of Model-Driven Engineering (MDE) are described to illustrate this.

Invited Presentation in Francisco Durán and Vlad Rusu: Proceedings Second International Workshop on Algebraic Methods in Model-based Software Engineering (AMMSE 2011), Zurich, Switzerland, 30th June 2011, Electronic Proceedings in Theoretical Computer Science 56, pp. 15–32.
Published: 29th June 2011.

ArXived at: https://dx.doi.org/10.4204/EPTCS.56.2 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org