Meta programs are programs that consume other programs as input. There are many tools for solving meta programming tasks, like grep and AWK for the simple stuff, and parser generators or compiler-compilers for more complex tasks. Rascal is a functional programming language that addresses all meta programming concerns in a single, unified language. The use cases for Rascal range from computing source code metrics and automated code smell detection, to implementing refactorings and full-blown compilers. Rascal provides an integrated set of features to simplify such source code analysis and transformation tasks, including built-in context-free grammars for syntax definition, constructs for automated traversal of syntax trees, powerful pattern matching primitives, and domain-specific data types. In this talk I will provide an overview of the language, and illustrate how it can be used as a tool for source code analysis and as a language workbench for developing domain-specific languages (DSLs).
Tijs van der Storm is researcher at Centrum Wiskunde & Informatica (CW), the Dutch national institute for computer science and mathematics and teaches Software Construction at the Universiteit van Amsterdam (UvA). In his work he tries to solve software engineering problems through better language design and language engineering. He is one of the designers of the Rascal language. Apart from all that, he likes literature and hates ugly code.