Charles Childers
Administrator
Sr. Member
    
Karma: +2/-0
Offline
Posts: 745
|
I'll take a minute to share what I've been working on for the last couple of months.
Many (most?) people here know that I've been developing RetroForth for several years. About two years ago, I started having some ideas for how to build a Forth-like language that could incorporate some things I'd been wanting to try more easily. My initial stab was purely conceptual. I envisioned how I wanted the core of this language to be setup, sketched out small fragments on paper, etc.
In the summer of 2006 I started to experiment with a small virtual machine. It eventually proved flawed, but part of the code became the basis for Toka. I started actual coding in November. By January, it was pretty useable, though still buggy and missing some important functionality. A handful of people have had access to it during the early days.
Now it's stable enough for me to be comfortable sharing it 
The language is similar to Forth, especially in terms of word naming and the use of two stacks along with a dictionary. Word classes are used in the implementation, but new classes can't be created at this time. Some features:
* No static heap. All memory for code and data (other than the dictionary buffers and a few internal buffers) is dynamically allocated * Garbage Collector * Loops, conditionals, etc can be used directly at the interpreter * File I/O (a serious lack in RetroForth until 9.3 [still under development]) * Decompiler * Arrays * FFI * Standard library of useful extensions * Single codebase that has been tested on 7 operating systems and 4 CPU architectures * 64-bit clean * Core is written in C
The language differs from traditional Forth in several areas, including the garbage collected memory, loop and conditional words, and the way words are created and defined.
More information can be found at http://code.google.com/p/toka and the source can be downloaded via Subversion by doing "svn checkout http://toka.googlecode.com/svn/trunk/ toka" (without the quotes). The library can be found at http://code.google.com/p/toka-library
|