Now that I have a blog, I suppose I should keep it up to date. After finishing the web sites last week, I put two papers online the Einet web site. The Argot White Paper provides some high level information on Argot as well as some low level technical aspects of Argot. The other new paper is the "Creating Evolvable Programming Languages", which demonstrates how Argot can be used to encode languages. This is opposed to the traditional method of encoding languages using text and syntax. Both are available in the Articles section of Einet.
With the web sites up to date, I've moved back to working on the C/C++ version of Argot. The C++ version of Argot was written early last year. However I discovered that C++ exceptions, RTTI, STL templates and virtual functions caused a lot of bloat. This time around I've decided to turn as much as I can into C.
After working with Java for a while, it's actually a refreshing change to write code in C. I've got all the fun of playing with function pointers, structures, unions and memory management. This refactoring will probably lead to changes that can be put back into the Java version. It's very interesting to see the same program in the light of a different programming language.
One of the disadvantages of working in C over Java is that you need to build your own abstract functions, like stacks and queues. This it turns out to be an advantage because unlike Java, these can be tailored specifically for the application. A simple case of this was developing a small integer to integer hash map(intmap). I was able to create a fast integer hash map in 1.5KB. This intmap will be heavily used in Argot, so making it small and fast will pay of well.
In other news the Open Vendor Public License (OVPL) continues to be discussed on the OSI license-discuss mailing list. There's plenty more that could be said on this; maybe a topic for the next post!