Skip to main content

Language Definition

rascal-0.34.0

Synopsis

Description of all aspects of a language.

Description

A language definition defines all relevant aspects of a programming language or Domain Specific Language and includes:

  • A Grammar (including lexical and context-free syntax).
  • Rules to describe the textual formatting of a language. These rules are sufficient to generate a Prettyprinter for it.
  • Rules that describe the Static Semantics of a language. These rules are sufficient to generate a Typechecker.
  • Rules that describe the Dynamic Semantics of a language. These rules are sufficient to generate an Interpreter for it.
  • Rules that describe how to generate code.

Other aspects of a language definition may include editor behaviour, highlighting, debugging, outlining, auto-completion and more.