Click here to Skip to main content
15,867,906 members
Articles / Programming Languages / Forth.NET
Tip/Trick

Delta Forth .NET

Rate me:
Please Sign up or sign in to vote.
4.94/5 (20 votes)
19 Aug 2013CPOL2 min read 288.3K   1.4K   48   41
World's first Forth compiler for the .NET platform

Delta Forth .NET - World's first Forth compiler for the .NET platform

Delta Forth is a non-standard Forth dialect. It has several limitations over traditional standards; however it may be an excellent starting point for beginners. The traditional compreter (compiler – interpreter) approach of other implementations did not appeal when the Delta dialect was designed since computers evolved enormously since the original Forth specification was written. Instead, we deal with compiled programs and thus several original Forth words – mainly related to chained execution - have lost their meaning (see STATE, COMPILE, IMMEDIATE, etc.).

It has been stated that a complete traditional Forth environment can be coded by a single person in a three month time frame. 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 award-winning 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. 

Main Features 

  • Targets the Common Language Runtime (CLR) directly, i.e. there is no intermediate p-code generation
  • Compilation to either .EXE or .DLL
  • Support for integer and string constants
  • Support for local variables
  • Support for include files
  • Support for external libraries
  • Support for signed assemblies 

What others have said... 

"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." Tim Sneath, .NET Developer Group, Microsoft Corp. 

"I work with all of our .NET language partners, and noticed your recent announcement of your Forth compiler [...]"Brad Merrill, Microsoft Corp.

"Excellent work Valer - I'm most impressed!" Chris Maunder, CodeProject.com

"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." Dennis Misener

"I started out with your Delta Forth. NET [...] and found it very interesting using Forth for writing .NET applications." Lennie De Villiers

Read more on my website at http://www.bocan.ro/deltaforthnet 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect
Romania Romania
I am a software engineer based in Timișoara, Romania and currently hold the position of software architect for one of the largest companies in the world.

I invented a dialect of the Forth programming language and implemented the first Forth compiler for the .NET platform. I reverse-engineered the communication protocol of some GPS trackers and wrote from scratch a vehicle tracking system that is currently used to track my two cars. I hold a PhD in computer science and I am the author of several papers and a book chapter. In the 90s I wrote several computer viruses in assembly language for my own research and I was the first to devise a technique to deter heuristic virus scanners. In short, a humble man.

Comments and Discussions

 
GeneralMy vote of 5 Pin
Southmountain19-Aug-13 13:08
Southmountain19-Aug-13 13:08 
QuestionWHich Version Pin
Wisen Technologies17-Aug-13 2:42
Wisen Technologies17-Aug-13 2:42 
AnswerRe: WHich Version Pin
Valer BOCAN19-Aug-13 4:51
Valer BOCAN19-Aug-13 4:51 
QuestionDelta Forth supported? maintained? Pin
Bruce Axtens28-Jun-10 16:33
Bruce Axtens28-Jun-10 16:33 
GeneralEmbarrassed Pin
jimmygyuma1-Nov-09 7:40
jimmygyuma1-Nov-09 7:40 
AnswerRe: Embarrassed Pin
Valer BOCAN1-Nov-09 18:32
Valer BOCAN1-Nov-09 18:32 
QuestionHELP! Pin
fasehah6-May-08 4:08
fasehah6-May-08 4:08 
GeneralIncredible job! Pin
Eric Engler1-Jul-06 16:50
Eric Engler1-Jul-06 16:50 
GeneralRe: Incredible job! Pin
Eric Engler5-Jul-06 17:06
Eric Engler5-Jul-06 17:06 
GeneralEmbbed Pin
sudheerravindran30-May-04 21:58
sudheerravindran30-May-04 21:58 
GeneralRPL Pin
bouli17-Dec-03 11:27
bouli17-Dec-03 11:27 
QuestionWhat's it good for? Pin
b0blee31-Jul-03 12:02
sussb0blee31-Jul-03 12:02 
I was a Forth programmer in the 80's and early 90's. Some people called me a Forth zealot. Since then I have embraced OOP techniques. I have a hard time imagining how useful stuff could be written in Forth these days.

I remember the early attempts at OO Forth. It was awkward at best. Seeing the advantages of OOP, I tried several times to develop a consistant Forth syntax for it. I failed.

Most modern APIs are OOPish. If you want to talk to a DOM, a network or an OS, chances are you'll be looking at OO syntax. Which brings me back to the title...

What's it good for?


AnswerRe: What's it good for? Pin
Valer BOCAN31-Jul-03 21:00
Valer BOCAN31-Jul-03 21:00 
QuestionDid Valer get his PhD? Pin
Nish Nishant19-Apr-03 13:20
sitebuilderNish Nishant19-Apr-03 13:20 
AnswerRe: Did Valer get his PhD? Pin
Valer BOCAN20-Apr-03 20:38
Valer BOCAN20-Apr-03 20:38 
GeneralFunny quote Pin
R. Reyes13-Feb-03 23:21
R. Reyes13-Feb-03 23:21 
QuestionI wonder what Chuck thinks of this? Pin
synchromesh18-Nov-02 9:16
synchromesh18-Nov-02 9:16 
QuestionWhy no .NET compiler implementations? Pin
Heath Stewart15-Nov-02 3:28
protectorHeath Stewart15-Nov-02 3:28 
AnswerRe: Why no .NET compiler implementations? Pin
Valer BOCAN15-Nov-02 3:37
Valer BOCAN15-Nov-02 3:37 
GeneralYour approach Pin
Shaun Wilde19-Jul-02 10:18
Shaun Wilde19-Jul-02 10:18 
GeneralRe: Your approach Pin
Valer BOCAN26-Jul-02 20:31
Valer BOCAN26-Jul-02 20:31 
GeneralRe: Your approach Pin
RichT6666-May-03 21:22
sussRichT6666-May-03 21:22 
GeneralRe: Your approach Pin
Zdenek Navratil21-May-03 21:06
Zdenek Navratil21-May-03 21:06 
GeneralThe link to the source code Pin
22-Jan-02 6:54
suss22-Jan-02 6:54 
GeneralRe: The link to the source code Pin
Valer BOCAN22-Jan-02 7:23
Valer BOCAN22-Jan-02 7:23 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.