Rascal: From Algebraic Specification to Meta-Programming

Jeroen van den Bos, Mark Hills, Paul Klint, Tijs van der Storm, Jurgen J. Vinju
2011 Electronic Proceedings in Theoretical Computer Science  
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
more » ... xperts 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.
doi:10.4204/eptcs.56.2 fatcat:jpric5vgjjbtjjxnyopfsxhzzy