Summary
The latest HeronFront preview release has the beginning of introspection/reflection support.
Advertisement
I have made a new pre-alpha release of HeronFront at http://www.heron-language.com/heronfront-5-9-2.zip (notice the numbering system is simply the date). This version includes the foundation for dynamic reflection.
One of the goals of Heron is to make it easy to dynamically extend a Heron program during execution. This would be not particularly interesting if it weren't for the fact that Heron is primarily intended as a statically typed and compiled language. What this means is that you can compile some of your program and extend it on the fly with a scripting language. The implications of this are that debugging, prototyping and testing are going to be far more powerful. Also many non-trivial applications benefit greatly from providing scripting languages to their users (editors, spreadsheets, databases, graphing, ...) so having a scripting language counterpart built-into a language specification, should prove to be very powerful.
Anyone who happens to look at the code and is scratching their head as to the implementation techniques should take a look at my article on high-performance dynamic typing in C++. The dynamic function invocation code is also complicated by the fact I am preparing for named parameter support. I hide the parameter names in the function names, separated by dollar signs.
A question to my readers: do you think what I am trying to do could give Heron a niche as a fully compiled, statically-typed language which caters to the agile development movement?