Aviva Directory » Computers & Internet » Programming » Forth

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

Search for Forth on Google, Bing, or Yahoo!