Abstract
The formal semantics of a programming language and its implementation are typically separately defined, with the risk of divergence such that properties of the formal semantics are not properties of the implementation. In this paper, we present DynSem, a domain-specific language for the specification of the dynamic semantics of programming languages that aims at supporting both formal reasoning and efficient interpretation. DynSem supports the specification of the operational semantics of a language by means of statically typed conditional term reduction rules. DynSem supports concise specification of reduction rules by providing implicit build and match coercions based on reduction arrows and implicit term constructors. DynSem supports modular specification by adopting implicit propagation of semantic components from I-MSOS, which allows omitting propagation of components such as environments and stores from rules that do not affect those. DynSem supports the declaration of native operators for delegation of aspects of the semantics to an external definition or implementation. DynSem supports the definition of auxiliary meta-functions, which can be expressed using regular reduction rules and are subject to semantic component propagation. DynSem specifications are executable through automatic generation of a Java-based AST interpreter.
Original language | English |
---|---|
Title of host publication | 26th International Conference on Rewriting Techniques and Applications, RTA 2015 |
Publisher | Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing |
Pages | 365-378 |
Number of pages | 14 |
Volume | 36 |
ISBN (Electronic) | 9783939897859 |
DOIs | |
Publication status | Published - 1 Jun 2015 |
Event | 26th International Conference on Rewriting Techniques and Applications, RTA 2015 - Warsaw, Poland Duration: 29 Jun 2015 → 1 Jul 2015 |
Conference
Conference | 26th International Conference on Rewriting Techniques and Applications, RTA 2015 |
---|---|
Country/Territory | Poland |
City | Warsaw |
Period | 29/06/15 → 1/07/15 |
Keywords
- Dynamic semantics
- IDE
- Interpreters
- Modularity
- Programming languages
- Reduction semantics
- Semantics engineering