Forth
From TunesWiki
A low-level functional programming language, mostly concatenative, with imperative features, for a stack-based VM model, invented by Chuck Moore. It is a very interesting language to study, both for its achievements and its shortcomings. The writer won't list those shortcomings of Forth here, and he doesn't list any of its achievements either. You'll just have to guess what he must have been thinking. -- A N Other
Central to Forth is the notion of a "word", corresponding to a function in other languages. A Forth program, after parsing, is nothing but a list of words, executed consecutively by the "inner interpreter", the core of Forth.
Forth is fully reflective and self-containing; the Forth parser (the so-called "outer interpreter") is written in Forth and can be modified at any time. It has also a set of words to access the input buffer (see for example the word PARSE
). Thus, at least potentially, Forth can have any syntax.
Forth is usually untyped, much in the same way that Assembly is (though see strongForth below). More generally, Forth is a very low-level language, with manual management of memory, fixed-size buffers, pointer manipulation; but reflection makes it a remarkably powerful language among low-level languages.
See also Forth OSes, Forth is NOT intrinsically slow.
- "forth.org", "FTP Site", "German FTP Mirror".
- "The Evolution of Forth", a Forth history by Charles H. Moore, Elizabeth D. Rather, Donald R. Colburn.
- "FORTH - A Language for Interactive Computing": the original FORTH paper by Chuck Moore.
- "Forth - The Early Years" another Forth history from its inventor.
- "Draft ANS Forth" the standard.
- "The ForthFreak Wiki"
- "An Introduction to Forth Using StackFlow".
- "FAQ" written by the good people at comp.lang.forth.
- "cera2.com" and "eg3.com".
- "Stack Computers: the new wave": a freely available online book by "Philip J. Koopman, Jr."
- "Starting Forth", Leo Brodie's classic introductory book is now available on-line (from Marcel Hendrix's home page).
- "M. Anton Ertl's WWW site".
- "Forth entry in the Open Directory Project": a comprehensive list of Forth related links
- "Moving Forth: a series on writing Forth kernels": is a collection of papers by Brad Rodriguez, including Design Decisions in the Forth Kernel (various threading techniques)
- "colorForth": Chuck Moore's colorForth Homepage
- "UltraTechnology.com": Jeff Fox's UltraTechnology Homepage
- "Forth, Inc.": founded by the original developers of Forth.
- "Taygeta Scientific Incorporated".
- "Patriot Scientific Corp.": FORTH chip maker.
- "Linear Logic and Permutation Stacks--The Forth Shall Be First" (".ps.gz"), a paper by Henry Baker
Abstract:Girard's linear logic can be used to model programming languages in which each bound variable name has exactly one "occurrence"--i.e., no variable can have implicit "fan-out"; multiple uses require explicit duplication. Among other nice properties, "linear" languages need no garbage collector, yet have no dangling reference problems. We show a natural equivalence between a "linear" programming language and a stack machine in which the top items can undergo arbitrary permutations. Such permutation stack machines can be considered combinator abstractions of Moore's Forth programming language.
- "Gforth": GNU Forth.
- "Mops": A superb public domain FORTH with OO extensions for Mac OS X. (An older version for "Classic" Mac OS can be found on the "Mops FTPsite".)
- "PFE".
- "strongForth Homepage", by "Dr. Stephan Becher" ("old strongForth Homepage" [[[MIA]]] "archived" at Internet Archive) ("strongForth Yahoo! group" [[[MIA]]]) an ANS FORTH with strong compile-time typechecking. See also discussions in concatenative Yahoo! group.
- "Frugal" - HardCore SoftWare's Forth system.
- "Dreams" - a Forth object-oriented programming extension.
- "Pgforth" - a Forth interpreter in Perl.
- "IsForth" - a 32 bit Direct Threaded Linux Forth compiler.
- "Atlast" - Autodesk Threaded Language Application System Toolkit, a programming language based on FORTH-83.
- "4th" compiler.
- "Gforth" system.
- For various implementations see "comp.lang.forth.repository".
Implementations
- "Hype" - a simple object-oriented Forth.
- "Coldstore's Chaos" - a Forth-like programming language. Also "Chaos's wiki page".
- "Timbre" - a script driven translator engine.
- "A Survey of Object-Oriented Forths".
- "The Forth Source".
- "Common Forth homepage".
- "Forth Research page".
- "iForth, tForth, eForth, mxForth, benchmarks, and links".
- Various Forth link collections "here" "here" and "here".
- "Fpos" - a native PPC ColorForth. MIA
- "Fcvm" - Forth Code Virtual Machine. MIA
- "Factor" - An interesting Forth-like language. It's blog "here".