scheme.forth.jl
----------------
+===============
A hobby Scheme interpreter for FORTH 83. Specifically it is targeted at
[forth.jl](http://github.com/tgvaughan/forth.jl) which is an implementation of
Scheme](https://github.com/petermichaux/bootstrap-scheme) (as described in
[this wonderful series of blog
posts](http://peter.michaux.ca/articles/scheme-from-scratch-introduction)) from
-C to forth, but also includes variadic compound function support, mark-sweep
-garbage collection, quasiquotation, and a basic (non-hygienic) macro
-system.
+C to forth, but also includes:
-In future, I plan to also implement a more complete numerical tower to bring it closer to
-[R5RS](http://www.schemers.org/Documents/Standards/R5RS/).
-
-The goal is for the interpreter to be complete enough to be used to complete
-the majority of the exercises found in [SICP](http://sarabander.github.io/sicp/).
+* variadic compound function support,
+* pre-evaluation syntactic analysis,
+* mark-sweep garbage collection,
+* quasiquotation,
+* a basic (non-hygienic) macro system and
+* first-class continuations via `call-with-current-continuation`.
Running the interpreter
-=======================
+-----------------------
-To run this Scheme interpreter, first open Julia from the src directory contained
-in this repository. If you've not done so already, install forth.jl using the
-following command:
+To run this Scheme interpreter, first open Julia (forth.jl requires
+**version >=1.0**) from the src directory contained in this
+repository. If you've not done so already, install forth.jl using the
+Julia package manager (accessed using the `]` key):
- julia> Pkg.clone("https://github.com/tgvaughan/forth.jl")
+ (v1.0) pkg> add https://github.com/tgvaughan/forth.jl
Then, import and run the Forth system:
; 120
Metacircular Evaluator
-======================
+----------------------
Of course, one of the things you can do in Scheme (or of course any programming
language, this is the fundamental thing) is implement an interpreter for
You may have to wait a minute or so for the final result to be printed.
License
-=======
+-------
This software is free (as in freedom) and is distributed under the terms
of version 3 of the GNU General Public License. A copy of this license