Forth is a procedural, stack-oriented, reflective programming language and programming environment. It was initially developed by Chuck Moore at the US National Radio Astronomy Observatory in the early 1970s, formalized as a programming language in 1977, and standardized by ANSI in 1994. The original implementations featured both interactive execution of commands (making it suitable as a shell for systems that lack a more formal operating system), as well as the ability to compile sequences of commands for later execution.
Forth is so named because Moore considered it appropriate for fourth-generation computers (i.e. microcomputers), and the system on which he developed it was limited to five-letter filenames. Although the name is not an acronym, it is sometimes spelled in all capital letters, following the customary usage during its earlier years.
Forth offers a standalone programming environment consisting of a stack-oriented, interactive, incremental interpreter and compiler. Programming is done by extending the language with words (the term used for Forth subroutines), which become part of the language once defined.
Forth has been popular for developing embedded systems and instrument controls because it is easy to add small machine code definitions to the language and use those in an interactive high-level programming environment.
The logical structure of Forth resembles a virtual machine. It has been implemented efficiently on modern RISC processors, and processors that use Forth as machine language have been produced. The modular extensible nature of Forth permits many high-level applications such as CAD systems to be written in Forth.
Forth is used in the Open Firmware boot ROMs used by Apple, IBM, and Sun Microsystems. It is also used by the FreeBSD operating system as the first stage boot controller.
Delta Forth is a non-standard Forth dialect. It has several limitations over traditional standards but it is an excellent starting point for beginners and enthusiasts. The traditional compreter (compiler – interpreter) approach of other implementations does not fit in the .NET environment as we deal with compiled programs. Several of the words in the original Forth specification have lost their meaning (see STATE, COMPILE, IMMEDIATE, etc.) but I think the compiled approach of this flavor is still appealing and useful. The true power of Forth is in its ability to stay close to the machine assembly language while it has some incredibly powerful control structures.
Delta Forth generates true .NET code in the form of console executables (.EXE) and libraries (.DLL). The code can be executed on any .NET platform, such as Microsoft .NET on Windows or Mono on Linux. Beginning with version Delta Forth 1.2 the code generated by the compiler can be strongly-signed using a regular signature file generated by the sn.exe tool.
Forth literature states that a complete traditional Forth environment can be coded by a single person in a three-month time. I managed to release the beta 1 version of Delta in half that time. Despite the short time it took to be developed, this tool has a long history, being a continuation of the Delta Forth for Java project that I started back in 1997. At that time, it was the first Forth compiler for Java and was a real surprise when I presented it as my graduation project two years later.
-
Tim Sneath, .NET Developer Group, Microsoft Corp. Well done on your Forth compiler for .NET. It must be over fifteen years since I last touched Forth, but it’s a great example of how the .NET Framework supports stack-based languages well.
-
Brad Merrill, Microsoft Corp. I work with all of our .NET language partners, and noticed your recent announcement of your Forth compiler […]
-
Chris Maunder, www.codeproject.com Excellent work Valer - I’m most impressed!
-
Howard Harawitz, author of HTML Assistant Pro I taught Forth during most of the eighties. It’s a wonderful language and many of my students loved it. I’m glad to see another modern incarnation. Congratulations!
-
Dennis Misener What a delight to trip across your Delta Forth .NET. I was wondering who’d have the first FORTH .NET offering. I need wonder no more. […] Keep up the good work.
-
Lennie De Villiers I started out with your Delta Forth. NET […] and found it very interesting using Forth for writing .NET applications.
-
Cherng Chin I teach Forth and C# in Providence in Taiwan and how wonderful I could tell students Forth has a .Net version that could be used with C#. Thanks a lot!
-
Jim Shaw Thanks for keeping FORTH alive on .NET