and related topics, such as stack-based languages
(PostScript, JavaVM), and stack machines. For general
interpreter topics see our interpreter
References (with abstracts) for
the papers. We are looking for students to work on Forth Praktika
- a free Forth system (Anton Ertl,
Bernd Paysan and
others). The goals of this project are explained here. Manual,
current version, papers on engine (EuroForth'93), some newer engine developments
(Forth-Tagung '02) and locals
- Forth native code generation
- (Anton Ertl, Christian
Pirker). Paper (EuroForth'92); Diplomarbeit (in German);
Ph.D. Thesis chapter; a paper
on the basic block part, with
results (EuroForth'96); and a paper on the internal organization of the compiler
(EuroForth '97). Status report. The FWF
(Austrian Science Foundation) supported this work (project number
- JavaVM to native code compilation
- aka just-in-time
compilation (Reinhard Grafl, Andi Krall). Diplomarbeit (in
German). The system and more information is available through the CACAO home page.
- Compilation of Forth to C
- (Anton Ertl, Martin Maierhofer). paper (also in dvi format), Ph.D. Thesis chapter, package and benchmark programs; Related work: Timbre, ^Forth.
- Gray, a parser generator in Forth
- (Anton Ertl). Package (in
tar.gz and zip formats), report (in German) and paper (in German, Forth-Tagung
'97). Related: Bradford Rodriguez' simple backtracking BNF parser in Forth.
- Forth code size and programming effort
- (Anton Ertl). Paper comparing the source code
size of parser generators in Forth and other languages. Executable code size of
threaded code vs. code generated by forth2c+gcc..
- Patterns in interpreted Forth execution
- These patterns can be
exploited for peephole optimization (on the virtual machine level) and
static branch target prediction (as used in the Alpha
older raw and cooked data. The can be
used to select static superinstructions.
- Four small, portable Forth benchmarks, and how various
Forth systems perform. See
benchmarks, Marcel Hendrix' Monster
benchmark-suite, Robert Epprecht's brew and Bruce Hoyt's
- Forth programming style
- (Anton Ertl). Commentary
explaining the concept of semantics in the standard and the relation
(EuroForth '98) discussing the problem and suggesting solutions. Package for adding combined words to
any system and for repairing some systems that suffer form
STATE-smartness. Test, whether POSTPONE
conforms to ANS
Forth when working on words with special compilation semantics
(also included in the Package).
- Proposed extensions to
- (Anton Ertl) Further efforts in that directions
are Forth 200x and the
RfD/CfV process. See also
the following sites that solicit public input: Proposed
ANS Forth Extensions; Some Commonly Used Forth
proposals on Sourceforge
- Object-Oriented Programming
- My view on how Forth should be
extended for object-oriented programming: package (contains the papers and the
code), paper on how to do it and paper on the Neon model.
- Garbage Collection
- Package (contains code,
documentation and tests).
- Optimization for Stack machines
- (Martin Maierhofer, Anton
Ertl). Allocating variables on the stack within basic blocks for
JavaVM and another stack machine; Diplomarbeit (in
German) and papers (Forth-Tagung '97, CC '98).
- Static type checking
- (Gregor Riegler) Master's
and implementation of an optional, pluggable type system for
Forth (local copy).
You may also want to look at our Forth
Some Forth links
- the Book
FAQ, Amazon.com's database on FORTH
(Computer program language) and Forth
(Programming Language); an old
book FAQ; Forth
Literature registered in the BIBOS database.
- WWW/FTP sites with lots of stuff
(formerly asterix), forth.sourceforge.net
- Forth search engine.
- Native code compilers
- iForth; bigForth; FLK (Linux-Intel, no longer
maintained); D (MacOS X,
- History (mostly longer articles)
- The Evolution
of Forth, by Rather, Colburn, and Moore, published at the History
of Programming languages conference (HOPL-II). Forth - The
Early Years by Chuck Moore. The Forth family tree and timeline. The
Heritage of F83 System (much about the Forth standards from -77 to
users manual, preface 1st ed on the tradition of public-domain
Forth systems. FORTH -- A Language
for Interactive Computing, by Moore and Leach; Mohasco Industries,
Inc., Amsterdam, NY, 1970 (surprising differences from and surprising
similarities with modern Forth systems). Forth
entry in the Encyclopedia of Computer
Languages. Jim Bowery's
Genesis of Postscript indicates a link between Forth and
Postscript histories, as well as giving an interesting perspective on
some of the things going on around 1980.
- Conferences and Journals
- FIG's conference page,
including a link to EuroForth (with
refereed section); FORML; Rochester
Forth Conference; Forth-Tagung (German). Journal of Forth
Application and Research (refereed); Forth Dimensions.
- Everything about Forth
200x. Best version of the Forth-94
version (derived from dpANS6). Also
available here. Forth-94 reference card containing word name, stack effect, and
standard is now also online (one text file, but without links, zip file). Forth-79 (zip file, glossary only). In addition,
the Open Firmware (IEEE 1275)
standard is now available, even though
it's home page
doesn't mention it.
- The Forth Tutorial
coming with pForth. A short
Introduction (targeted at CFORTH) and a
longer one (targetted at 4th); Introducción a Forth
(Spanisch); a Forth
Lessons Wiki, in particular for Open Firmware. Bernd-M. Stejskal
created a page with
links to tutorials and other Forth documentation; another tutorial links
- Introduction to implementation techniques
- The Heart of
- Stack machines
- Phil Koopman's book.
- Other stack-based languages
- StrongForth, a
statically typechecked variant of Forth. Factor, run-time type-checked
variant of Forth. Joy,
functional, run-time type-checked?. Cat, functional,
- Forth Implementations
- The German Forth club.