A Crude Ontology of Forths
by Trenton Henry
11/03/21
A vast number of Forth implementatons exist, and even more Forth-like language implementations. It is kind of difficult to define just what exactly is a Forth. So I read up, and listened to discussions, and thought "hmmm..." and this is what I came up with for everyone to disagree on.
Any individual language implementation may fit one or more of these categories.
An RPNotForth is any RPN language that is not Forth.
A Forth-like language is a concatenative language with similarities to Forth, such as Joy, or Factor.
A hosted Forth is something like GForth which runs on an extra-Forthicular operating system on a workstation. This might also be called a "Process Forth" because it implements process virtual machine.
A standard Forth is one that conforms to a specific published Forth standard like and ANSI/ISO Forth.
A PlatForth is non-hosted Forth that implements its own platform/operating system. This might also be called a "System Forth" because it implements a system virtual machine.
A self-hosted Forth is one that implements a dictionary and is capable of defining new words at runtime.
A cross-compiled Forth is one whose dictionary is created on a workstation and downloaded into the Forth executable. Often these are not self-hosted and cannot define new words at runtime. Sometimes they are self-hosted.
Email or DM me if I have omitted anything.
End