Summary
My old programming language project, Unimperative, has been reborn as a "concatenative" programming language in the tradition of Joy.
Advertisement
Over a year ago I posted to my blog about the Unimperative programming language which was a Lisp/Scheme dialect and a subset of C++. I ran into some performance problems and shelved the program until recently. When I learned about the equivalence of concatenative and functional languages, I got very excited and redesigned Unimperative as a concatenative language. Unimperative still retains the property of being pure C++.
A concatenative language is one where every function has a single argument (a stack) and returns a single value (a new stack). This means that a concatenative language is also a pure functional language. Concatenative languages are very easy to implement and optimize, so I am hoping to reuse Unimperative as a target for Heron.
Development is still in its early stages, but an open-source Unimperative library for C++ is available at Unimperative.com. There is a mailing list at the site for anyone interested in helping out with the design and implementation of the language.
Very interesting! So, Heron targets Unimperative. I should think that C++ will be able to do impressive optimization on such a language as Unimperative (given the nature that you describe), so it will be quite interesting to see what comes of this!