Electronic Proceedings in Theoretical Computer Science (Jun 2011)

Rascal: From Algebraic Specification to Meta-Programming

  • Jeroen van den Bos,
  • Mark Hills,
  • Paul Klint,
  • Tijs van der Storm,
  • Jurgen J. Vinju

DOI
https://doi.org/10.4204/EPTCS.56.2
Journal volume & issue
Vol. 56, no. Proc. AMMSE 2011
pp. 15 – 32

Abstract

Read online

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.