Skip to main content

Rascal Concepts


Gentle introduction to the main concepts of the Rascal language.


Rascal is based on a dozen concepts and having a global understanding of them will help to grasp the language more quickly. Here we will informally explain and illustrate these concepts and often we will refer to the Rascal Language Reference for further details. In other words, we are providing here a friendly front-end for the actual language description.

Most language concepts are described separately but some features we just mention here:

  • Rascal programs consist of modules that are organized in packages.
  • Modules can import other modules.
  • The external visibility of entities declared in modules can be controlled using public/private modifiers.
  • Data structures may have additional keyword fields that can be explicitly used and modified.
  • There is an extensive library for built-in datatypes, input/output, fact extraction from Java source code, visualization, and more.

Here are the concepts to be discussed: