English

The Formal Semantics of Rascal Light

Programming Languages 2018-02-07 v4

Abstract

Rascal is a high-level transformation language that aims to simplify software language engineering tasks like defining program syntax, analyzing and transforming programs, and performing code generation. The language provides several features including built-in collections (lists, sets, maps), algebraic data-types, powerful pattern matching operations with backtracking, and high-level traversals supporting multiple strategies. Interaction between different language features can be difficult to comprehend, since most features are semantically rich. The report provides a well-defined formal semantics for a large subset of Rascal, called Rascal Light, suitable for developing formal techniques, e.g., type systems and static analyses. Additionally, the report states and proofs a series of interesting properties of the semantics, including purity of backtracking, strong typing, partial progress and the existence of a terminating subset.

Keywords

Cite

@article{arxiv.1703.02312,
  title  = {The Formal Semantics of Rascal Light},
  author = {Ahmad Salim Al-Sibahi},
  journal= {arXiv preprint arXiv:1703.02312},
  year   = {2018}
}

Comments

Revision: Minor fixes to proofs and rules

R2 v1 2026-06-22T18:38:14.562Z