Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lassik/awesome-forth

Links pertaining to the Forth programming language
https://github.com/lassik/awesome-forth

List: awesome-forth

awesome forth

Last synced: 7 days ago
JSON representation

Links pertaining to the Forth programming language

Awesome Lists containing this project

README

        

# Awesome Forth

[![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

Forth is a stack-based, imperative and reflective programming language
that comes with its own interactive development environment. Forth is
famous (and infamous) for its extreme simplicity and flexibility. It
excels at the rapid prototyping of low-level software and and has been
implemented for an extremely wide range of platforms.

## Books

+ [Starting Forth](https://www.forth.com/starting-forth/) by Leo Brodie is a classic tutorial and textbook, often considered the best introduction. [Free PDF]
+ [Thinking Forth](http://www.dnd.utwente.nl/~tim/colorforth/Leo-Brodie/thinking-forth.pdf) of best introduction book on Forth mindset [Free PDF]
+ [Programming Forth](http://www.mpeforth.com/arena/ProgramForth.pdf) Free PDF
+ [Beginners Guide](http://galileo.phys.virginia.edu/classes/551.jvn.fall01/primer.htm)
+ [Forth Primer](http://ficl.sourceforge.net/pdf/Forth_Primer.pdf)

## Videos

+ [A Little Bit of Forth](https://www.youtube.com/watch?v=Q6FflPMHZP4) A great introduction
+ [Over the Shoulder 1 - Text Preprocessing in Forth](https://www.youtube.com/watch?v=mvrE2ZGe-rs) A great example of how elegant and simple forth can be in the hands of an experienced forth programmer (Samuel A. Falvo II)
+ [Chuck Moore](https://www.youtube.com/results?search_query=chuck+moore+forth) Lots of videos showing unconventional approaches to programming by inventor of Forth himself
+ [SVFIG talks](http://forth.org/svfig/videos/)

## Chips

+ [Novix NC4000/NC4016](https://users.ece.cmu.edu/~koopman/stack_computers/sec4_4.html) -- First Forth chip by Moore and others at Novix Inc., 1985
+ [Harris RTX 2000](https://users.ece.cmu.edu/~koopman/stack_computers/sec4_5.html) -- 16-bit stack computer based on the Novix, 1988
+ [Sh-Boom](https://spectrum.ieee.org/tech-history/silicon-revolution/chip-hall-of-fame-computer-cowboys-shboom-processor) from Computer Cowboys (Moore and Russell Fish), 1988
+ [GreenArrays GA144](http://www.greenarraychips.com/home/products/index.html) -- 1x1cm chip with 144 cores
+ [The J1 Forth CPU](https://excamera.com/sphinx/fpga-j1.html) -- Forth CPU for FPGAs in 200 lines of Verilog
+ [Chip information curated by Jeff Fox](http://www.ultratechnology.com/chips.htm)

## Standards

+ [ANS Forth 1994 (table of contents)](https://www.taygeta.com/forth/dpans.html)
+ [ANS Forth 1994 (index of words)](https://www.taygeta.com/forth/dpansf.htm)
+ [Forth 2012 standard and Forth200x committee](https://forth-standard.org/)

## ANS Forth implementations

+ [SwiftForth](https://www.forth.com/swiftforth/) -- big commercial implementation from Forth, Inc.
+ [GForth](http://www.gnu.org/software/gforth/) -- big implementation using GCC to compile a fast direct or indirect threaded Forth 2012.
+ [Win32Forth](http://win32forth.sourceforge.net/) -- big implementation for Microsoft Windows
+ [pForth](http://www.softsynth.com/pforth/) -- Portable C Forth from 3DO/Lucent
+ [hForth](https://www.taygeta.com/hforth.html) -- minimal, portable
+ [Jones Forth](https://github.com/AlexandreAbreu/jonesforth) -- minimal, Linux x86
+ [lbForth](https://github.com/larsbrinkhoff/lbForth) -- self-hosting, portable Forth
+ [SP-Forth](https://github.com/rufig/spf), Crossplatform forth with [huge shared code library from different developers](https://github.com/rufig/spf/tree/master/devel) included
+ [muforth](https://muforth.nimblemachines.com/), "Small, simple, fast, indirect-threaded Forth intended for use as a cross-compiler"
+ [CamelForth](http://camelforth.com) is an implementation for embedded microprocessors (8051, 8086, Z80, and 6809, with more to come).
+ [amForth](https://sourceforge.net/projects/amforth/) is a Forth 2012-ish interpreter running on AVR ATmega and TI MSP430 microcontrollers
+ [Mecrisp Forth](http://mecrisp.sourceforge.net/) is an implementation of a standalone native code Forth for MSP430 microcontrollers
+ [Mecrisp-Stellaris](http://mecrisp.sourceforge.net/) is a variant of Mecrisp which runs on various ARM Cortex M chips (and the Raspberry Pi Pico and BBC MicroBit). See also the comprehensive [Documentation](https://mecrisp-stellaris-folkdoc.sourceforge.io/)

## Non-standard Forth implementations

+ [ColorForth](https://colorforth.github.io/), Chuck Moore
+ [EtherForth](http://etherforth.org/), Chuck Moore and Daniel Kalny
+ [RetroForth](http://www.retroforth.org/)
+ [Rainbow Forth](https://github.com/flagxor/rainbowforth), Perhaps simpliest ColorForth that you may start [in your browser](http://rainbowforth.appspot.com/) (Link requies Google login). Tons of cool documentation too!
+ [J1 swapforth project](https://github.com/jamesbowman/swapforth/tree/master/j1a) Minimal Forth system to be ran directly on J1a

## Applications

+ [Forth in Space Applications](https://www.forth.com/resources/space-applications/) -- a list from Forth, Inc.
+ [Galileo spacecraft magnetometer patch (1993)](https://github.com/rongarret/gll-mag-patch)
+ [Open firmware](https://en.wikipedia.org/wiki/Open_Firmware)

## Games

+ [Worms? (Atari 1983, with source code)](https://github.com/savetz/worms)
+ [Starflight](https://github.com/s-macke/starflight-reverse)

## Different Forth reading

+ [ColorForth website](https://colorforth.github.io/), Chuck Moore
+ [UltraTechnology website](http://www.ultratechnology.com/), Jeff Fox
+ [Forth Dimensions](http://www.forth.org/fd/contents.html) Scanned copies of the Forth Magazine from the past

## User groups

+ [Silicon Valley Forth Interest Group (SVFIG)](http://forth.org/svfig/), host of annual Forth day in November

## Forth companies

+ [Forth, Inc.](https://www.forth.com/)
+ [GreenArrays](http://www.greenarraychips.com/)
+ [Taygeta Scientific](https://www.taygeta.com/)

## Other concatenative languages

+ [Joy](http://www.latrobe.edu.au/humanities/research/research-projects/past-projects/joy-programming-language) -- purely-functional language
+ [Factor](https://www.youtube.com/watch?v=f_0QlhYlS8g) -- garbage-collected functional language
+ [OForth](http://www.oforth.com) -- garbage-collected object-oriented language
+ [**Concatenative language wiki**](https://concatenative.org/)