Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A basic Forth interpreter written in Scheme.
Scheme
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
LICENSE
README
TODO
forsight.ss

README

FORSIGHT
--------

Forsight is a basic Forth interpreter written in Scheme. This is mostly just a
thought-experiment, but if anyone can use it in any fashion I would love to
know!

Forsight is meant to be run on the command line via your Scheme interpreter. 
Your Scheme implementation may vary. The currently implementation only supports
basic Forth stack-arithmetic, and word definition.  

The Scheme implementation this was written in is Racket. Originally I wanted to
do a more "traditional" Scheme than Racket, but honestly the Racket guys are 
awesome and Racket is one of the best languages to date, so I decided to do a
little conversion.

The "version" of  Forth I am most closely emulating is the language described 
in Leo Brodie's "Starting FORTH" (http://www.forth.com/starting-forth). 
Since I have a (very basic) version of Forth working I intend to use it to go
 through Brodie's books. When I encounter new things or obvious errors in my 
implementation I will fix them as they go long.

If any advanced Schemers, Lispers, Forthers, Interpreter-writers, Code Ninjas,
etc. read this program and have any suggestions I'd love to hear them! Send me
a message through here. Also contact me if you use this, I'd love to hear form
you. Feel free to fork and improve, hack, whatever. 


LICENSE
-------

The License is describe in the LICENSE file, but the short version is that this
is under the BSD 2-clause, so use it however you want - I'd just like a 
nod somewhere if you decide to redistribute it.


SCHEME FUNCTIONS
----------------

I chose to use this to learn both Forth and Scheme a little bit better. While
I am learning Clojure and I tend to use Racket a lot for personal hackage, I 
decided it would be fun to implement this program use on the barest essentials,
which is why there are none of the srfi stuff that would have made string
processing and hash stuff all the more elegant.


THANK YOU!
Something went wrong with that request. Please try again.