> I'm sure this has been attempted by various folks in various ways, but
> I've always felt code optimization is a rich target for AI.  There's a
> clearly definable goal; the environment (compiler, initial code,
> generated code, test inputs and outputs or validation program) doesn't
> need much setting up; and the whole thing can be self-contained and
> self-running on a single computer.  Given some technique for
> optimizing the optimizer, theoretically you could just set it running
> and get on with your business...
>
> --
> Cliff

I am involved with a team that is building the world's most advanced code
optimizer, the Supercompiler, which does source-to-source code rewriting.

It takes a source program, transforms it into an abstract mathematical
graph, simplifies the graph, and then creates new source representing the
simplified graph.

Check out www.supercompilers.com; there's a white-paper on there that I
wrote some time ago.

There are big uses for AI in this process, but they're 3-5 years down the
road given the current pace of Supercompilers engineering (which is,
surprise surprise, kinda slow due to their very limited resources).

The problem with creating an advanced optimizer for a real programming
language, is that real-world programming languages are BIG, nasty beasts.
There's a lot of detail-work that has nothing to do with AI or advanced
math, that has to be done just to make the basic framework within which
advanced code optimization ideas can be inserted.  For Java, the
Supercompilers guys are beyond that right now, and after several years of
work are finally into the "advanced mathematical optimization" stuff... but
not yet to the AI stage.

"Optimizing the optimizer" is what we've called "supercompiling the
supercompiler", it's a natural idea, but we're not there yet.

Making a test suite for supercompilation is not as easy as you imply,
actually.  Testing speedup is easy, but checking that the supercompiler
hasn't introduced subtle errors into the program, is very hard.

My experience working with Supercompilers LLC has been a lesson in the
startling short-sightedness of the software industry.  The researchers
involved with Supercompilers are top-notch with decades of published
experience, and their approach is a "natural" conceptually and
mathematically.  And yet, so far, it hasn't been possible to get any kind of
co-development deal with a major software company.  I had some discussions
with IBM that went nowhere.  Discussions with a certain other large software
company are going slowly, but at least seem to be progressing in a good
direction....


-- Ben G

-------
To unsubscribe, change your address, or temporarily deactivate your subscription, 
please go to http://v2.listbox.com/member/

Reply via email to