MinForth v3.4.5

This is quite interesting software and a little unorthodox.

It's a 32-bit and 64-bit ANS 2012 Forth for Windows and Linux that has a 64-bit target compiler that generates C as its output code. Word definitions can use a mixture of C and Forth code in its definitions when they are being cross-compiled. The interpreter/compiler generates ITC or a list of addresses pointing to C Primitives or user-created words.  It seems much faster than my TTC or Token Treaded Code Forth compiler.

When compiled for 64-bits it uses 64-bits for the Data Stack items and Doubles are 128-bits, with 80-bit Floats. Another interesting feature is that has a Complex Math Library supplied with it along with ANSI text code words to change color, highlights, underlining, etc. One extremely nice feature of the cross-compiler is that it has a code-ripper that removes any code in an application not used.

I was able to successfully compile a 64-bit Linux version with Gcc so all the code is there. I’ve played with it somewhat entering small programs and it all runs well. I also compiled a 64-bit version with Tcc for Windows.

This is a most interesting version of Forth 2012 although somewhat unconventional in having a Target Compiler included with it that generates C code instead of generating machine code. This capability is used to generate a new copy of MinForth (MetaCompiler) and to create stripped-down applications that do not include Forth a very useful thing. This feature makes it a lot easier to move the MinForth system to another CPU since C is the lingua Franca of the programming world. The more I use it the more I like it, I need to figure out a good enough benchmark so I can compare it to other Forth systems.

The possibility of easier migration along with some minor tests I’ve done makes me like this version more and more as a vehicle to be able to migrate Forth to other CPUs. Currently, all my PCs have a 64-bit copy installed in them, I like it that much. I need to continue testing the software to make sure all is well before I commit to migrating it to another system, initial targets would be the cb030 SBC with an MC68030 CPU running CP/M 68, another useful target would be the esp32 CPU which currently only has eForth available for it.

In the latest development with Version 3.4.5 it is also available for DOS in a 32-bit version using a DOS extender. This works out well using DOSBox-X in Linux or Windows.