Description A language definition defines all relevant aspects of a programming language or
DomainSpecificLanguage and includes:
- A Grammar (including lexical and contect-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 StaticSemantics of a language. These rules are sufficient to generate a Typechecker.
- Rules that describe the DynamicSemantics of a language. These rules are sufficient to generate an Interpreter for it.
- Rules how to generate code.
Other aspects of a language definition may include editor behaviour, highlighting, debugging, outlining, auto-completion and more.