This post originated from an RSS feed registered with Java Buzz
by Carlos Perez.
Original Post: Javelin, Yet Another Extensible Java Compiler From BEA
Feed Title: .:Manageability:.
Feed URL: http://www.manageability.org/blog/stuff/rssDisabled?portal_status_message=Syndication+is+Disabled
Feed Description: Random thoughts on the manageability of complex software.
I just stumbled upon Javelin, BEA's new extensible Java compiler. Like any good marketer, it's billed as "The First". That's not exact the truth, I've blogged about several extensible compiler frameworks 8 months ago. However, I've got to give them credit, Javelin is possibly the first "extensible" compiler framework to be used in a commercial setting. Of course many will disagree, I mean what do you call the compiler that comes with Eclipse? It's definitely not chopped liver? However, if you ask anybody who's dug into the gory details of the Eclipse compiler it's not exactly designed with extensibility in mind.
If you download Javelin, you realize that there's not much documentation on how they achieve "extensibility". All they've got is Javadocs that explains how to call the main compiler, but rest assured they plan on delivery the missing documentation in the near future. I'm truly interested in what they mean by "extensibility", I highly doubt they have a macro facility like JSE. The parser itself may not be as extensible like PolyGlot or I could be wrong. Afterall, they both use CUP LALR parser. I also don't know if they've adopted the extensible visitor mechanism used by JaCo. Nevertheless, its a subject that's always intrigued me, I've done enough compiler work to wonder just how best to do it. Incidentally, the compiler also has a backend that appears to be based on BCEL.
This is a good thing, the world has yet another compiler written in Java. Strangest thing though, my memory is a bit vague on this, but does anyone know if Sun has a Java compiler written in Java?