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