I own several commercial versions of Forth and they are;

8th Professional edition – An enhanced Forth-based language that generates native code. It is an enhanced development system based on Forth and is available for many platforms. Write code once and compile it to Windows, Linux, Mac-OS, Ios, Android, RPi, and others.

SwiftForth Professional Forth, with the source code – It has been around for a while, a quite capable Forth that generates optimized machine code. The source code is easier to follow the commercial Forth. It is available for Windows, Linux, and Mac-OS.

MPE VFX Professional Forth for Windows, with the source code –  A very fast optimizing Forth that generates efficient machine code. It is available for Windows Professional.

MPE VFX Professional Forth for ARM CPUs, with source

MPE VFX Professional Forth for MSP430 CPUs, with source

eForth for Windows, AVR, MSP430, esp8266 with source


Free Forth Versions

My personal version of eForth written in C is a work in progress, at present, I learned a lot from it and now know better ways to do it. It generates token threaded code which is smaller but slower than a regular Forth system.  Compilable on MS C, Tcc i386 or x64, Gcc, Pelle’s C, and Orange C. Although not fully tested it appears to work correctly so far, more testing is needed. This project has a kernel of 200+ words and compiles to an executable of 19KB. So far it is a Windows-only system.

This C project will most likely be abandoned and would be replaced by a from-scratch version using a web-based language such as Rust or Clojure, either generating WebAsm. The purpose of the project was to have a Forth System that was easily migrated but I will most likely work on migrating MinForth instead.

r3 Forth – created by Pablo Reda it’s a Windows/Linux 64-bit Forth based on ColorForth so it is simple to use, has a target code generator that generates x64 code but at present, it generates Windows-only code. It comes with a Graphics Library and a TCP/IP library.

MinForth – 3.4.5 – An ANS 2012 compatible Forth, it has some interesting features.

  1. It is written in C for the VM and a mixture of C and Forth for the rest of the system and comes with a target-compiler that outputs C code.
  2. The code for the cross-compiler can compile a mixture of C and Forth code.
  3. It has a decent speed for the generated code, I used GCC in compiling the software and that generates decent code with 80-bit floats, 64-integers, and 128-bit doubles.
  4. Has an available Complex Math Library which is of interest as I like designing electronics and radio circuits.
  5. Has a TCP/IP Library.
  6. It has support for the regular file system but also the block-based file system.
  7. Currently available for 64-bit Windows, 64-bit Linux, and 32-bit DOS, a useful combination of OSes.

SP-Forth – Created by Fig-Russia, a modern ANS compatible Forth that is very capable and fast, it generates optimized machine code and has a huge library of Forth code available. It is very fast and comparable to the best commercial Forth offerings. The source code is available. The Linux version works fine but it is missing a lot of the Libraries available in the Windows version.

Forth2020 An adaptation of SP-Forth in order to make it compatible with WinForth32 since it has become unusable due to so many false positives from the Anti-Virus industry. Since its base is an optimizing machine code generating Forth it will be faster than the original WinForth32.

OForth V1.2 – A most interesting Forth enhancement with many OOP features, dynamic allocation, and Garbage Collection, and it generates machine code. A very interesting variation on Forth that I really like. Although I like its mixture of Forth and Smalltalk it looks like it is an abandoned project with no support. So this will not be up for consideration on future projects. The versions available are for 32-bit Windows and Linux.

lxf/ntf 2017 – An ANS 2012 Standard-based Forth that generates optimized machine code, the main negative is that the source code is not available, it is available for Windows and Linux.

wf32 – An ANS-compatible Forth that generates optimized machine code. The source code is available and is a Windows-only project.

Vfx Community Forth for Windows and Linux with source code. It generates extremely fast machine code, on Linux I use the 64-bit version and will also use the 64-bit Windows version when available.


DOS Forth Versions

Pygmy Forth V1.7 A very old DOS-based Forth based on cmForth, for a long time my favorite Forth. With DosBox-X it runs rather well in Linux

F83 by Mike Perry and Henry Laxen. I have this one available for DOS, and for CP/M 68k

LMI URForth an excellent F83 based Forth using a DOS extender so it is a 32-bit Forth.

FPC Forth another excellent F83 based Forth, like URForth is is a full-blown Forth System with all sorts of built-in tools.

When I first started messing with Forth in the early 70s I used a Forth of my own design based on the available literature which fit no Standards as there weren’t any available. Later I changed them to more or less follow the F79 which was very close to what I originally had to begin with, just plain simple forth with little extra items. Eventually, I started using Pygmy Forth which was based on cmForth, again a rather plain Forth system very similar to what I had used before but with a lot of internal changes to make it simpler.

Eventually, they came up with the F83 system but I did not use it I stuck to the homemade Forths I had then later I used Pygmy.

Lately, I have been working with a CP/M 68K system using the MC68030 CPU and 64MB of RAM and since F83 was one of the few Forth available, I installed it and it works rather well so I wish I was familiar with it but give it time.

Now my ultimate desire would be to transport MinForth 3.4.5 to the CP/M 68K system, I have a C compiler and Assembler for the system, and since the MinForth transpiler (target-compiler) output C code it should be a doable project. So if I get my wish I would have 64-bit Linux, 64-bit Windows, 32-bit DOS, and CP/M 68k Forth system that is compatible with one another.