4th Annual Symposium on Theoretical Aspects of Computer Sciences on STACS 87
The semantics of programming languages: an elementary introduction using structural operational semantics
Semantics with applications: a formal introduction
Semantics with applications: a formal introduction
Selected papers of the 3rd workshop on Concurrency and compositionality
Types and programming languages
Types and programming languages
Communication and Concurrency
The Definition of Standard ML
CASL: the common algebraic specification language
Theoretical Computer Science
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
TinkerType: a language for playing with formal systems
Journal of Functional Programming
Casl User Manual: Introduction to Using the Common Algebraic Specification Language Casl (Lecture Notes in Computer Science, 2900)
SOS formats and meta-theory: 20 years after
Theoretical Computer Science
A Rewrite Framework for Language Definitions and for Generation of Efficient Interpreters
Electronic Notes in Theoretical Computer Science (ENTCS)
The java memory model: operationally, denotationally, axiomatically
ESOP'07 Proceedings of the 16th European conference on Programming
Proceedings of the 8th international workshop on Specification and verification of component-based systems
Language description for front end implementation
Proceedings of the Tenth Workshop on Language Descriptions, Tools and Applications
Formally specified type checkers for domain specific languages: experience report
Proceedings of the Tenth Workshop on Language Descriptions, Tools and Applications
Component-based description of programming languages
VoCS'08 Proceedings of the 2008 international conference on Visions of Computer Science: BCS International Academic Conference
Modular bisimulation theory for computations and values
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Hi-index | 0.00 |
In contrast to a transition system specification in process algebra, a structural operational semantics (SOS) of a programming language usually involves auxiliary entities: stores, environments, etc. When specifying SOS rules, particular auxiliary entities often need to be propagated unchanged between premises and conclusions. The standard technique is to make such propagation explicit, using variables. However, referring to all entities that need to be propagated unchanged in each rule can be tedious, and it hinders direct reuse of rules in different language descriptions. This paper proposes a new interpretation of SOS rules, such that each auxiliary entity is implicitly propagated in all rules in which it is not mentioned. The main benefits include significant notational simplification of SOS rules and much-improved reusability. This new interpretation of SOS rules is based on the same foundations as Modular SOS, but avoids the notational overhead of grouping auxiliary entities together in labels. After motivating and explaining implicit propagation, the paper considers the foundations of SOS and Modular SOS specifications, and defines the meaning of SOS specifications with implicit propagation by translating them to Modular SOS. It then shows how implicit propagation can simplify various rules found in the SOS literature.