Jacob Matthews
and
Robby Findler bring us
An Operational Semantics for R5RS Scheme
(also available in
PostScript):
This paper presents an operational semantics for the core of Scheme. Our specification improves over the existing R5RS denotational specification in four ways:
- It is more complete, since it contains eval, quote, and dynamic-wind.
- It models multiple values in a way that does not require changes to unrelated parts of the language.
- It provides a more faithful model of Scheme's undefined order of evaluation.
- It is executable, because it is encoded as a program in PLT Redex, a domain-specific language for writing operational semantics.
The executable specification allows others to experiment with our specification and allows us to build a specification test suite, which improves our confidence that our system is a faithful model of Scheme. In addition to contributing a specification of Scheme, this paper presents several novel modeling techniques for Felleisen Hieb-style rewriting semantics that we discovered while developing our R5RS Scheme semantics. All are applicable to a wider range of problems than the specific uses we have for them, and the fact that they combine seamlessly in our full R5RS model shows that they scale to real languages.
This looks like excellent work, as we've come to expect from the PLT folk.
The PLT Redex tool was previously discussed on LtU. If you're interested in checking it out, this page provides links to "everything you need to run PLT Redex and executable versions of every reduction system in the paper".
To be presented at the
2005 Workshop on Scheme and Functional Programming, Tallinn, Estonia, 24 September, 2005.
Thanks to Jens Axel Søgaard for bringing this paper to my attention.
Recent comments
21 weeks 6 days ago
22 weeks 1 hour ago
22 weeks 2 hours ago
44 weeks 1 day ago
48 weeks 3 days ago
50 weeks 9 hours ago
50 weeks 9 hours ago
1 year 4 days ago
1 year 5 weeks ago
1 year 5 weeks ago