For fun, I created a tiny unofficial subset of the Scheme R7RS Small specification called Pico Scheme (previously announced as Tiny Scheme, but that name was already in use.)
The first Release Candidate is up at https://github.com/jrincayc/r7rs-pico-spec/releases/tag/version_1.0rc1
See also the README at: https://github.com/jrincayc/r7rs-pico-spec
If you find issues with it, please either leave an issue on github or reply to this thread.
Unless significant changes are needed (and I need a second release candidate), I plan on releasing the final version on Friday December 2nd.
The pico subset removes non-functional features, continuations, non-integers, and other features that complicate the semantics or implementation. It also removes features that can easily be implemented by a define.
It leaves a small subset where the grammar can be described in about a page, and the semantics can be described in another page. The whole thing is 18 pages.
The draft is a mostly a superset of the Scheme subset used in the book "The Little Schemer". (definition of zero?, add1, sub1, atom?, eq? are needed to be a proper subset)
Because of the simplifications, the type of an expression is:
Environment -> Expressed Value
Instead of:
Environment -> Dynamic Points -> Expression Continuations -> Command Continuations
which results in a much simpler semantics.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (2 / 14) |
Uptime: | 33:42:52 |
Calls: | 10,391 |
Calls today: | 2 |
Files: | 14,064 |
Messages: | 6,417,129 |