A K Definition of Scheme
2007 Technical Report
- A K Definition of Scheme
- Patrick Meredith, Mark Hills and Grigore Rosu
- Technical Report UIUCDCS-R-2007-2907, October 2007
- Abstract. This paper presents an executable rewriting logic semantics of R5RS Scheme using the K definitional technique. We refer to this definition as K-Scheme. The presented semantics follows the K language definitional style but is almost entirely equational. It can also be regarded as a denotational specification with an initial model semantics of Scheme. Equational specifications can be executed on common rewrite engines, provided that equations are oriented into rewrite rules, typically from left-to-right. The rewriting logic semantics in this paper is the most complete formal definition of Scheme that we are aware of, in the sense that it provides definitions for more Scheme language features than any other similar attempts. The presented executable definition, K-Scheme, can serve as a platform for experimentation with variants and extensions of Scheme, for example concurrency. K-Scheme also serves to show the viability of K as a definitional framework for programming languages.