Summary
News about the Heron and Cat programming language, and what is on the horizon.
Advertisement
I have completed a new version of the Cat interpreter which will be posted this weekend (by Sunday June 18th). I should be finished a prototype Cat to MSIL compiler by August 1st in time for my talk on Cat at the .NET Programming Languages Symposium in Redmond at Microsoft.
Even though Heron has been dormant for a while, there will be a working version by the early Fall which compiles to Cat. There will also be some documentation, finally! This will mean that the next version of Heron will also compile to .NET. If there are any brave souls who attempt to write a Cat to JVM compiler, then this will automatically give me a Heron to JVM compiler as well. Hopefully, you can see a method to my madness now.
All of my work still is on my own time, and it hasn't yet been picked up on the Microsoft radar, despite the fact that I work there. I'm a rather insignificant cog there for the time being. This may or may not change with the symposium. Depends on whether or not the movers and shakers feel there is merit to the work I am doing.
> That's great news - a Heron-Cat compiler will be a nice > example. > > Would it be possible to release (possibly interim) > examples of simpler language compilers to Cat?
The plan is to release a simplified Heron, and then increasingly more complex versions.
> I think these would make Cat a much more attractive target > for those of us who don't quite get it yet.
You mean, getting why would someone use Cat? Cat is intended for language implementors who are interested in improving performance, or targeting multiple platforms.
> Hmmm, there's a really powerful Forth compiler on Palm > (http://quartus.net/products/forth/) which features a true > compiler. > > I wonder how hard it would be to get Cat working on top of > that, yielding a Heron->Palm compiler :-)
That would be an awesome project, and I would help anyone as much as I could who decided to take on such a thing. It should not be too hard to do a Cat to Forth compiler, since many of the mappings would be relatively trivial.
I would like to see examples making it clear how you transition from an Algol-style language such as Heron to the stack based approach of Cat, especially if this involves transformations between an OO paradigm and something else.
With regards to porting/compiling Cat to Quartus Forth, Quartus is a full ANSI-compliant Forth so if an ANSI-Forth step could be accomplished you can target a whole range of systems including many embedded ones, not just PalmOS.
Incidentally, Quartus is free as an interpreter, just requires payment to compile standalone executables (it is a true compiler). It is a fairly awesome product, including Forth translations of the entire PalmOS 5 API.