Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Royal Scheme will eventually grow to be a real, usable, embeddable Scheme implemented in ANSI C.

branch: v0.1

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 .gitignore
Octocat-spinner-32 CHANGES
Octocat-spinner-32 LICENSE
Octocat-spinner-32 Makefile
Octocat-spinner-32 README.md
Octocat-spinner-32 eval.c
Octocat-spinner-32 model.c
Octocat-spinner-32 print.c
Octocat-spinner-32 read.c
Octocat-spinner-32 repl.c
Octocat-spinner-32 scm.h
Octocat-spinner-32 util.c
README.md

Royal Scheme

Royal Scheme will eventually grow to be a real, usable, embeddable Scheme implemented in ANSI C.

A primary goal of Royal Scheme is documenting the development of a real language implementation to show that mortals can accomplish the task.

Example build and use.

$ cd royal-scheme
$ make && ./scm
Welcome to Royal Scheme. Ctrl-c to exit.
> 123
123
> +123
123
> -123
-123
> a
error: scm_read: unexpected char '\141'

For more information see:

License

See the LICENSE file for legal information.

Acknowledgements

Thanks to Abdulaziz Ghuloum for his paper "An Incremental Approach to Compiler Construction". The pedagogy of his paper inspired the incremental development of Royal Scheme.

Thanks to Alex Shinn for making his Chibi-Scheme implementation open source. Chibi-Scheme has inspired much of the code in Royal Scheme.

Something went wrong with that request. Please try again.