The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Types and programming languages
Types and programming languages
Operational Semantics and Program Equivalence
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Hoare Logics for Recursive Procedures and Unbounded Nondeterminism
CSL '02 Proceedings of the 16th International Workshop and 11th Annual Conference of the EACSL on Computer Science Logic
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Call-by-need in token-passing nets
Mathematical Structures in Computer Science
Token-Passing Nets: Call-by-Need for Free
Electronic Notes in Theoretical Computer Science (ENTCS)
From natural semantics to abstract machines
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Call-by-name and call-by-value as token-passing interaction nets
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Hi-index | 0.00 |
Operational semantics for programming languages usually come in two flavours: big-step and small-step. Both are defined using deduction rules with a congruence rule allowing reduction in certain contexts. For a description based on rewrite rules, known approaches consist in deriving an abstract machine, which is very close to implementation. In this paper, we describe the operational semantics of an imperative language in a rule-based style, arguably as abstract as the other kinds of semantics. Moreover, we combine the approach with the store-based semantics, which puts the focus on memory states rather than values, which is more appropriate for imperative languages.