I created a .NET fork of ECJ that would allow you to try and develop your
idea in any .NET CLR (Common Language Runtime) variant, such as C#, Visual
Basic.NET, F#, Scheme, Eiffel, IronPython, etc. In particular, many
engineering students seem to feel confident with VBA in Excel, which gives
you a reasonably good feel for VB.NET (although there are many differences
and significant added complexity and power).
One of the reasons I created that fork is because there are so many
different different programming dialects and styles that all compile down to
the same underlying "intermediate language" (IL), which is much like Java
byte code. Thus, one can mix styles, such as procedural, object-orientated,
functional, declarative, dynamic, and so on. Plus, there are ways to
construct evolutionary frameworks as "Workflows", with small parts used to
compose larger "chunks" of functionality in a visual designer. That is, you
can hook parts together in the designer in various ways to change the final
"expression tree" that gets executed at runtime. Workflows can be
check-pointed (just like ECJ, except that instances are typically serialized
to a database) for long-running processes.
NOTE: If you find the "Workflow" approach attractive, you can also check out
Drools, which is pure Java, and it has an active open source community
supporting it. And that might work very nicely with ECJ straight out of the
The fork of ECJ was ported in pure C# code. So for what you have described,
any hacking would be easiest if you have a good grasp of that language (it
is very similar to Java). However, all of the "types" in the compiled
"assemblies" can be manipulated and extended using any of the other CLR
compliant languages. That was the whole point of creating it. The great
downside, of course, is the fact that it is not terribly useful in
I will be exploring the idea of using HyperNEAT for now. But I may try and
migrate some of that into the ECJ framework (converting it back into Java
source if it looks promising).
If you want to take a look at the port of ECJ to C#, you can go here:
WARNING: There is little documentation specific to the forked version. I
just currently point users back to Sean's site. If you don't have a
COMPELLING reason to use the fork (such as .NET expertise), you should stick
with the Java original.
Sent: Friday, December 02, 2011 12:25 PM
To: [log in to unmask]
Subject: Re: A Mixed GA/GP individual
My examinations are starting soon. I will try to create the classes you say
semester. If I manage to make it work I'll let you know.