and related topics, such as stack-based languages
(PostScript, JavaVM), and stack machines. For general
interpreter topics see our interpreter
page.
Persons
Projects
- Gforth
- 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
(Euroforth'94).
- 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
P11231).
- 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
architecture). Paper,
older raw and cooked data. The can be
used to select static superinstructions.
- Benchmarks
- Four small, portable Forth benchmarks, and how various
Forth systems perform. See
also MPE's
benchmarks, Marcel Hendrix' Monster
benchmark-suite, Robert Epprecht's brew and Bruce Hoyt's
Pentomino.
- Forth programming style
- notes
-
STATE
-smartness - (Anton Ertl). Commentary
explaining the concept of semantics in the standard and the relation
to
STATE
; Paper
(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
the standard
- (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
Words; Word
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
thesis: Evaluation
and implementation of an optional, pluggable type system for
Forth (local copy).
References (with abstracts) for
the papers. We are looking for students to work on Forth Praktika
and Diplomarbeiten.
You may also want to look at our Forth
repository.
Events
Some Forth links
- FAQs
- Books
- 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.
Thinking
Forth resurrected!
- WWW/FTP sites with lots of stuff
-
Forth Links,
www.taygeta.com, ftp.dei.isep.ipp.pt
(formerly asterix), forth.sourceforge.net
- Forth search engine.
- Native code compilers
- iForth; bigForth; FLK (Linux-Intel, no longer
maintained); D (MacOS X,
not maintained).
- 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. Inside F83 starts with a chapter on developments up to F83. fig-Forth
Links, including
a microForth
glossary. F-PC
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.
- Standard
- The current
standard Forth-2012 and
proposals for the next
standard. Earlier Forth 200x site.
Best version of the Forth-94
document: HTML
version (derived from dpANS6). Also
available here. Forth-94
reference card containing word name, stack effect, and wordset
information.
The Forth-83
standard is now also online
(one
text file, but without
links, zip
file). Forth-79
(zip
file, glossary
only). Forth-77
and the closely related Forth AST.01. In addition, the Open
Firmware (IEEE 1275) standard is now available, even though
it's home page
doesn't mention it.
- Introductions
- 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
page.
- Introduction to implementation techniques
- The Heart of
Forth
- 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,
statically-typed.
- Forth Implementations
- Google's
directory. Systems
FAQ.
- Forth-Gesellschaft
e.V.
- The German Forth club.
Anton Ertl
HTML 2.0