(redirected from Forth (disambiguation))
Also found in: Dictionary, Thesaurus.


Forth, river, c.60 mi (100 km) long, formed by streams that join near Aberfoyle in Stirling, S central Scotland. It meanders generally eastward past the town of Stirling to the Firth of Forth at Alloa. Its chief tributaries are the Teith and Allan rivers. The Firth of Forth extends c.55 mi (90 km) E from Alloa to the North Sea, reaching widths up to 19 mi (31 km) across. Rosyth is an important naval base, and Leith is the port of Edinburgh. The port of Grangemouth is at the eastern end of the Forth and Clyde Canal (35 mi/56 km long; completed 1890), which links the Firth of Forth with the River Clyde. Rivers flowing into the firth include the Leven, Esk, Avon, and Carron. The Isle of May and Bass Rock, with lighthouses and ruins, are at the entrance to the firth; Inchkeith and Inchcolm islands are within the firth. At Queensferry three bridges cross the firth: the Forth Bridge, also known as Forth Railway Bridge (5,350 ft/1,631 m; completed 1890), the world's first cantilever bridge; the Forth Road Bridge, one of the longest suspension bridges in Europe (3,300 ft/1,006 m long; completed 1964); and the Queensferry Crossing, a cable-stayed road bridge (8,858 ft/2,700 m long; completed 2017). Two more bridges cross the firth farther inland, at or near Kincardine.
The Columbia Electronic Encyclopedia™ Copyright © 2022, Columbia University Press. Licensed from Columbia University Press. All rights reserved.


(computer science)
A high-level programming language developed primarily for microcomputers and characterized by a number of features that make it highly adaptable and readily extensible, such as the ability to be used as an interpreter or an operating system.
McGraw-Hill Dictionary of Scientific & Technical Terms, 6E, Copyright © 2003 by The McGraw-Hill Companies, Inc.


1. Firth of. an inlet of the North Sea in SE Scotland: spanned by a cantilever railway bridge 1600 m (almost exactly 1 mile) long (1889), and by a road bridge (1964)
2. a river in S Scotland, flowing generally east to the Firth of Forth. Length: about 104 km (65 miles)
Collins Discovery Encyclopedia, 1st edition © HarperCollins Publishers 2005


An interactive extensible language using postfix syntax and a data stack, developed by Charles H. Moore in the 1960s. FORTH is highly user-configurable and there are many different implementations, the following description is of a typical default configuration.

Forth programs are structured as lists of "words" - FORTH's term which encompasses language keywords, primitives and user-defined subroutines. Forth takes the idea of subroutines to an extreme - nearly everything is a subroutine. A word is any string of characters except the separator which defaults to space. Numbers are treated specially. Words are read one at a time from the input stream and either executed immediately ("interpretive execution") or compiled as part of the definition of a new word.

The sequential nature of list execution and the implicit use of the data stack (numbers appearing in the lists are pushed to the stack as they are encountered) imply postfix syntax. Although postfix notation is initially difficult, experienced users find it simple and efficient.

Words appearing in executable lists may be "primitives" (simple assembly language operations), names of previously compiled procedures or other special words. A procedure definition is introduced by ":" and ended with ";" and is compiled as it is read.

Most Forth dialects include the source language structures BEGIN-AGAIN, BEGIN-WHILE-REPEAT, BEGIN-UNTIL, DO-LOOP, and IF-ELSE-THEN, and others can be added by the user. These are "compiling structures" which may only occur in a procedure definition.

FORTH can include in-line assembly language between "CODE" and "ENDCODE" or similar constructs. Forth primitives are written entirely in assembly language, secondaries contain a mixture. In fact code in-lining is the basis of compilation in some implementations.

Once assembled, primitives are used exactly like other words. A significant difference in behaviour can arise, however, from the fact that primitives end with a jump to "NEXT", the entry point of some code called the sequencer, whereas non-primitives end with the address of the "EXIT" primitive. The EXIT code includes the scheduler in some multi-tasking systems so a process can be descheduled after executing a non-primitive, but not after a primitive.

Forth implementations differ widely. Implementation techniques include threaded code, dedicated Forth processors, macros at various levels, or interpreters written in another language such as C. Some implementations provide real-time response, user-defined data structures, multitasking, floating-point arithmetic, and/or virtual memory.

Some Forth systems support virtual memory without specific hardware support like MMUs. However, Forth virtual memory is usually only a sort of extended data space and does not usually support executable code.

FORTH does not distinguish between operating system calls and the language. Commands relating to I/O, file systems and virtual memory are part of the same language as the words for arithmetic, memory access, loops, IF statements, and the user's application.

Many Forth systems provide user-declared "vocabularies" which allow the same word to have different meanings in different contexts. Within one vocabulary, re-defining a word causes the previous definition to be hidden from the interpreter (and therefore the compiler), but not from previous definitions.

FORTH was first used to guide the telescope at NRAO, Kitt Peak. Moore considered it to be a fourth-generation language but his operating system wouldn't let him use six letters in a program name, so FOURTH became FORTH.

Versions include fig-FORTH, FORTH 79 and FORTH 83.

FAQs. ANS Forth standard, dpANS6.

FORTH Interest Group, Box 1105, San Carlos CA 94070.

See also 51forth, F68K, cforth, E-Forth, FORML, TILE Forth.

[Leo Brodie, "Starting Forth"].

[Leo Brodie, "Thinking Forth"].

[Jack Woehr, "Forth, the New Model"].

[R.G. Loeliger, "Threaded Interpretive Languages"].


This article is provided by FOLDOC - Free Online Dictionary of Computing (


(FOuRTH-generation language) A high-level programming language created by Charles Moore in the late 1960s as a way of providing direct control of the computer. Resembling LISP syntax, FORTH uses reverse polish notation for calculations, and it is noted for its extensibility.

It is both compiler and interpreter. The source program is compiled first and then executed by its operating system/interpreter. It is used in process control applications that must quickly process data acquired from instruments and sensors. It is also used in arcade game programming as well as robotics and other AI applications. The following polyFORTH example converts Fahrenheit to Celsius:

 : CNV ( n) 32 - 5 9 * / . ." Celsius
 : user_input  ." Enter Fahrenheit " CNV ;
Copyright © 1981-2019 by The Computer Language Company Inc. All Rights reserved. THIS DEFINITION IS FOR PERSONAL USE ONLY. All other reproduction is strictly prohibited without permission from the publisher.