Skip to main content

Rascal Language Reference



Reference manual for the Rascal meta-programming language.


Here we describe all features of the Rascal language in detail, for reference purposes.

You can find more (accessible) information about programming in Rascal here:

  • Why Rascal: gives the motivation for the Rascal language and describes various usage scenarios.
  • Getting Started describes how to download, install and start Rascal.
  • Getting Help shows how to use the help facilties and search the documentation.
  • See Further Reading for a reading guide to the documentation.
  • Library functies are described in Rascal Libraries.
  • We do not maintain a long list of frequently asked questions (FAQ) but use StackOverflow instead.


  • We show examples for each Rascal language construct described here.
  • You can find many simple code examples in Recipes.
  • The Rascal Libraries contain examples for most functions.


  • Rascal has everything you need for any kind of (meta-)program you want to write. See Why Rascal.


  • Rascal is a procedural/functional language with immutable data. Do not confuse this with object-oriented programming.
  • Rascal allows you to write highly imperative code, but it has declarative constructs that lead to shorter and more readable code.