[comp.lang.forth] 128K MacForth and C to Forth

postman#@andrew.cmu.edu.UUCP (01/26/87)

ReSent-To:nntp-xmit#@andrew.cmu.edu
Return-path: <ms5n#@andrew.cmu.edu>
To: outnews#ext.nn.comp.lang.forth@andrew.cmu.edu
In-Reply-To: <1174@dicome.UUCP>

If I understand what you correctly, it sounds like you're describing a
subroutine threaded Forth interpreter.  Subroutine threading means that
when a Forth word in compiled, machine language jsr (or whatever the
instruction is on your favorite machine) instructions are are written
to memory with a jump to the word being compiled.  Upon execution, the
interpreter simply passes control to the word being executed and lets
the machine do the rest, because every word is just a list of jsrs
terminated by an rts.  This kind of Forth is extremely fast and
versions do exist for the Mac (what they are, I can't remember).  But
writing such a Forth is C is usually more difficult than writing it in
assembly.  A friend and I attempted just such a feat in C on the PC.
We got a fast working version, but we still needed some machine
language support code for some of the routines.  On a 68000 based
machine, however, writing a subroutine threaded Forth in Assembly
language is trivial.  

Anyway, there are a lot of versions of Forth for the Mac.  There is
MacForth, by Creative Solutions.  Its a Token Threaded Forth (the
slowest around), but I think you can get the Level 1 version for about
$100.  The Level 1 version is limited, but it gets better with Levels
II and III.  Apparently Level III lets you create stand alone
applications.  Any help???  OK.


-Mike

tim@ism780c.UUCP (02/06/87)

In an article, The Big Cheese writes:
>
>Anyway, there are a lot of versions of Forth for the Mac.  There is
>MacForth, by Creative Solutions.  Its a Token Threaded Forth (the

MacForth is no longer token threaded.  Also, I think that they are
getting rid of having three levels.  Now there is only one product,
"MultiForth", or something like that.
-- 
Religion: just say "no"

Tim Smith       USENET: sdcrdcf!ism780c!tim   Compuserve: 72257,3706
                Delphi or GEnie: mnementh