permacomputing

Source repository for the main permacomputing wiki site
git clone http://git.permacomputing.net/repos/permacomputing.git # read-only access
Log | Files | Refs

Forth.mdwn (1510B)


      1 **Forth** is a [[stack-based]] programming language created in the 1970s by Chuck Moore.
      2 
      3 The main benefit of Forth is that it is very small. A classical Forth system takes the roles of the compiler, the editor and the operating system while completely fitting in a memory space of less than 20 kilobytes. The smallness also makes it possible to implement a Forth system from scratch in a weekend.
      4                              
      5 Forth is often run with a two-stack [[virtual machine]], which makes it much slower than compiled code, although native-compiling Forth systems are also common. Classical Forth systems typically also include an [[assembler]] that can be used to implement speed-critical parts of the program.
      6 
      7 Most programmers see Forth as quite esoteric in comparison to other languages. Forth also doesn't "protect" the programmer from its inner peculiarities – even though it is possible to create abstractions, it is not advisable to forget what lies under those abstractions.
      8 
      9 Forth has been standardized, but Moore himself hasn't cared so much about standardization. The "[[Redo from scratch]]" ideal is quite strong in the Forth culture and exemplified by Moore's own quest for an optimal set of language elements.
     10 
     11 See also:
     12 
     13 * [Thinking Forth (the classical Forth book)](http://thinking-forth.sourceforge.net/)
     14 * [Forth - the Early Years (by Chuck Moore)](https://colorforth.github.io/HOPL.html)
     15 * [Standard Forth system for Uxn](http://www.call-with-current-continuation.org/uf/uf.html)