The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
The predictive analyzer and a path elimination technique
Communications of the ACM
From Syntactic Theories to Interpreters: Automating the Proof of Unique Decomposition
Higher-Order and Symbolic Computation
Proving ML Type Soundness Within Coq
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
Fundamentals of Context=Sensitive Rewriting
SOFSEM '95 Proceedings of the 22nd Seminar on Current Trends in Theory and Practice of Informatics
The call-by-need lambda calculus
Journal of Functional Programming
Adding delimited and composable control to a production programming environment
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Packrat parsers can support left recursion
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Modular and efficient top-down parsing for ambiguous left-recursive grammars
IWPT '07 Proceedings of the 10th International Conference on Parsing Technologies
Semantics Engineering with PLT Redex
Semantics Engineering with PLT Redex
Revised [6] Report on the Algorithmic Language Scheme
Revised [6] Report on the Algorithmic Language Scheme
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Mechanized metatheory for the masses: the PoplMark challenge
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Hi-index | 0.00 |
This paper explores the semantics of the meta-notation used in the style of operational semantics introduced by Felleisen and Hieb. Specifically, it defines a formal system that gives precise meanings to the notions of contexts, decomposition, and plugging (recomposition) left implicit in most expositions. This semantics is not naturally algorithmic, so the paper also provides an algorithm and proves a correspondence with the declarative definition. The motivation for this investigation is PLT Redex, a domain-specific programming language designed to support Felleisen-Hieb-style semantics. This style of semantics is the de-facto standard in operational semantics and, as such, is widely used. Accordingly, our goal is that Redex programs should, as much as possible, look and behave like those semantics. Since Redex's first public release more than seven years ago, its precise interpretation of contexts has changed several times, as we repeatedly encountered reduction systems that did not behave according to their authors' intent. This paper describes the culimation of that experience. To the best of our knowledge, the semantics given here accommodates even the most complex uses of contexts available.