Misty Beach Forth
What is Misty Beach Forth?
Misty Beach Forth is an implementation of the Forth programming language written in
Java. Because it is written in Java, the Misty Beach Forth interpreter can be
embedded in a WWW HTML page and launched as an applet. The applet appears below.
Why was Misty Beach Forth created?
Misty Beach Forth was created to demonstrate that just about any programming
language can be implemented in Java without suffering an unacceptable performance
penalty. Java implementations already exist for languages without
explicit pointers (Java implementations of Ada, Lisp, Scheme, BASIC, Rexx, and Python
already exist. An Eiffel implementation is on-the-way).
These languages all fit the Java Virtual Machine (JVM) fairly well because of their
lack of pointers.
Forth does not fit the JVM well because Forth is built on pointers, much like C.
I hope that the combination
of these other languages, plus Misty Beach Forth, provides a compelling argument that
any programming language can be implemented either in Java or on top of the JVM.
I think the ability to implement other languages in Java is important for several reasons:
- Java as a programming language is not the final step in programming language evolution.
As good as it is, we will eventually have better languages. It would be nice if those
other languages could be implemented on top of the JVM, too.
- Java is not always the right tool for the job. It will be nice to have access to
Lisp and Prolog and OPS5 and lots of other languages and still benefit from the
portability of Java.
- Programming languages fascinate me. I hope that it can be demonstrated that
developing new languages for the JVM instead of for a specific hardware/OS
platform is reasonable. I get frustrated when I discover that the only implementation
of a programming language I am interested in won't run on the hardware/OS to which I have
- It would be nice to have many good (not necessarily professional quality) applet
implementations of various programming languages. This spares me the effort of
downloading and configuring the language implementation I wish to investigate.
What is the current state of Misty Beach Forth?
Misty Beach Forth is still under development. The current version is 0.40, which
implies that I think it's about 40% of the way to a full release.
The current version should demonstrate most of the features of the language.
Math operators, logic operators, control operators, new word definition,
function call, and stack manipulation operators are all implemented. It also
has the beginning of hooks into the Java runtime. These hooks allow Misty Beach
Forth to be used as a scripting language and also will allow it to be self
hosting, eventually. There are bugs, but the implementation seems to be
stable enough to demonstrate proof-of-concept. Don't try to develop any
medical device software with it :-) .
This version of Misty Beach Forth, unlike previous ones, requires a Java 1.1 or later
runtime environment. Internet Explorer 5.xx (and following) and Netscape
Navigator 4.50 (and following) both provide this. The 1.1.x and following
versions of the Java Developer's Kit from Sun also work.
An applet version of Misty Beach Forth is embedded here. It may take
a little while to download as the applet is about 180 KB.
Misty Beach Home Page
Questions? Comments? Email: Mark
Copyright © 1996-2001 by Misty Beach Software Organization