Designed by Charles H. Moore in the late 1960s, Forth is an extensible, interactive programming language. Although it is not an acronym, its name is sometimes written in all caps.
It is extensible because the language makes no distinction between the core words and routes that are written by the programmer who, in effect, creates new commands. It is interactive in that, once a new definition has been compiled, even from the keyboard, it is made immediately available. It is fast because it is compiled, powerful because it is extensible, and easy to debug because it is interactive.
Forth is used in the boot loader for Open Firmware, in space applications, and in embedded systems that involve interaction with hardware. The language has been used in several large, complex projects, and has been implemented in processors that use Forth as machine language.
Forth is text-based, and context-free. It can serve as a high-level language, an assembly language, an operating system, a set of development tools, and as a software design philosophy.
It is generally accepted that Forth is somewhat more difficult to learn than many other languages. For one thing, there are a lot of words to use before it can be used well. What is known as functions, procedures, and subroutines are known as words in Forth. Nearly every word used in Forth has a function that is documented in the glossary. Functions are known as Forth jargon, which is stored in the dictionary. The dictionary is the basic data structure of Forth. A vocabulary is a group of words forming an area of interest.
Forth began as Charles H. Moore's personal programming system, which he began developing in 1998. In 1970, other programmers were given access to the language. While working at the US National Radio Astronomy Observatory, Moore brought Elizabeth Rather in on the project. When they finished the work they were doing for NRAO, Moore and Rather formed FORTH, Inc. in 1973, to refine and port Forth systems to dozens of other platforms.
Although its name was initially written in all-caps as FORTH, it was never an acronym. In 1968, the file holding its interpreter was labeled FOURTH, for 4th-generation software, but the IBM-1130 operating system restricted file names to five characters, so its name was shortened to FORTH.
As Moore frequently moved from one job to another, porting the language to different computer architectures became a primary concern. Forth was the first resident software on the Intel 8086 chip in 1978, and MacFORTH was the first resident development system for the 128K Macintosh in 1984. MicroFORTH was developed for the Intel 8080, Motorola 6800, and Zilog Z80 microprocessors, and was later used to generate Forth systems for other architectures.
Eventually, this led to the standardization of the language, which was recognized by ANSI in 1994. That version was known as ANS Forth.
Because it was suited tot he small microcomputers of the 1980s, Forth became popular. The British Jupiter ACE used Forth in its ROM-resident operating system, the Canon Cat used it for its system programming, and Rockwell produced single-chip microcomputers with resident Forth kernels. Insoft GraFORTH is a version of the language with graphic extensions for the Apple II.
Most Forth systems run under a host operating system, such as Microsoft Windows, Linux, or a Unix version. Classic Forth systems use neither an operating system or a file system, storing source code in disk block written to physical disk addresses.
As the Forth virtual machine is easy to implement and has no standard reference implementation, there are several implementations of the language. Besides those targeting specific varieties of computer systems, such as POSIX, Windows, Mac OS X, and so on, many of these Forth systems also target a variety of embedded systems. Conforming to the 1994 ANS Forth standard are Gforth, Open Firmware, pForth, SP-Forth, SwiftForth, and VFX Forth. Another Forth variant designed by Charles Moore is colorForth, which was developed in the 1990s.
Websites whose focus is on the language itself, or on any of its versions, dialects, or implementations, are appropriate for this category, as are any compilers, editors, IDEs, or other tools designed for use in Forth programming, as well as Forth user groups, forums, tutorials, or guides.
 
 
Recommended Resources
Designed by the original designer of Forth, Charles H. Moore, colorForth was developed as the scripting language for Moore’s VLSI CAD program OKAD, which was used to develop custom Forth processors. In the 1990s, he rewrote the language and released it to the public domain. The language uses different colors in its source code, replacing some of the punctuation in standard Forth, in order to determine how different words are treated. An introduction, contacts, and a blog are put forth.
https://colorforth.github.io/
Forth is a stack-based programming language that is able to extend itself during runtime. This is the official website of the Forth 2012 Standard, and Forth200x Committee. Recent contributions and replies are posted, and Gforth, iForth, SwiftForth, and VFX are featured and made available for download. Forth user communities are identified, and the written standard is documented. Proposals are published, the most recent first, and instructions for writing a proposal are given.
http://forth-standard.org/
FIG was a world-wide, non-profit organization for education in and the promotion of the Forth computer language. Although FIG has been dissolved as an organization, its site is maintained for its resources, which include an online literature database, programming tools, reference works, public-domain and experimental implementations of the Forth programming language, available for various platforms. Links to various Forth groups, people, vendors, and resources are listed, but may be defunct.
http://www.forth.org/
Founded by Charles H. Moore and Elizabeth Rather, the designers of the Forth programming language, FORTH, Inc. is a software development company that provides consulting services, custom programming, and development tools to the programming community. Its history, products, and services are highlighted. Programming books and manuals, and the SwiftForth IDE and SwiftX may be purchased or subscribed to, and other resources are recommended.
https://www.forth.com/
Written by Charles Childers, the site features some of his personal programming projects, mostly designed in the Forth programming language. Included is RETRO, which he describes as a clean, pragmatic dialect of Forth, serving as a simple alternative for those willing to take a break from legacy systems. Source code, documentation, and a glossary are included. Other resources include several programs written in Forth, and Parable, a small language that draws from Toka and Retro.
http://forthworks.com/retro
Written by Nick Morgan, East Forth is an e-book that teaches the Forth programming language, one that is neither functional or object-oriented, without type-checking, and with zero syntax. Tutorial chapters include an introduction, adding some numbers, defining words, stack manipulation, generating output, conditionals and loops, variables and constants, arrays, keyboard input, snake, and a conclusion (the end). The tutorial is free, but contributions are suggested.
http://skilldrick.github.io/easyforth/
Available as open-source software, Punyforth is a simple, stack-based programming language, inspired by Forth, which primarily targets Internet of Things devices, like the ESP8266, a low-cost, WiFi-capable chip used in IoT applications and home automation projects. Its design goals are stated, along with quick-start instructions, and general information about the language, including the differences between Punyforth and other Forth systems, and specifics about the ESP8266.
https://github.com/zeroflag/punyforth/
Gforth is the Forth programming language implementation of the GNU project and uses GCC to compile a fast direct or indirect threaded Forth. It is ANS FORTH compliant. The goals of the Gforth Project is to develop a standard model for ANSI Forth, which includes its conformance to the ANSI/200x Forth standard, its position as a model, defining all of the implementation-dependent things, and that it should become standard, being widely accepted and used. Its mailing list is put forth.
https://www.gnu.org/software/gforth/
In business since 1981, MPE specializes in real-time and embedded systems, such as tools for the complete development cycle, including hardware, software, and firmware, which operate on desktops and a wide range of embedded targets. MPE offers Forth development systems that produce code as fast as that of any other language and with all of the benefits of an interactive development cycle and traditional Forth implementations. Its products, consultancies, and training services are discussed.
https://www.mpeforth.com/
Based on a kernel written in ANSI C, pForth is a public domain, portable ANS Forth that can be easily ported to multiple platforms, including 3DO ARM systems, Amigas, Beagle Board, BeOS, Ciena Systems, Compaq Ipaq 3970, Hitachi SH4, Linux, Macintosh, Nokia Communicator, OpenTV, Raspberry Pi, SGI Indys, Sharp LH79520 ARM processor, SUNs, WebTV systems, Windows, and some internal projects at Lucent. Available at GitHub, its features and documentation are featured.
http://www.softsynth.com/pforth/
Hosted on SourceForge, and in the public domain, with a GNU Library or Lesser General Public License, Win32Forth is an ANS compatible Forth programming language application development system with several tools, including an interactive console, integrated extensible debugger, a GUI file editor, hypertext rendering, and hyperlinked source files. An overview is put forth, the Win32Forth Project Group is introduced, and a manual, download section and links to additional resources are included.
http://win32forth.sourceforge.net/
The Oforth Programming Language
Created and written by Franck Bensusan, Oforth is dynamic, fast, and concise, its garbage collector is incremental, it includes functional programming features, and parallel programming is easy. An overview of the language is given, along with full documentation, and an instructional video. Downloads are available for Linux, Windows, and Mac. A user forum includes announcements, Oforth examples, Project Euler, suggestions, bug reports, and other discussions.
http://www.oforth.com/