Research compiler infrastructures

September 9th, 2003  |  Tags:  |  1 Comment

This usenet query didn’t generate much of a of response. I was a little frustrated by the state of public information about research compiler infrastructures (as opposed to source-available compilers in general, by “research compilers” I mean compilers that expose a number of IRs, make it easy to develop complicated analyses and transforms, and enable users to add a pass easily). Part of this, probably, is that publically distributed software artifacts are less common in compilers than in other areas (like systems or high-performance computing). However, a good repository of information on compilers, searchable by target and implementation language would be really useful. I’ve had that as a back-burner project since the middle of the summer, which means that it will probably never happen.

However, I can tell you that if you’re looking for a research compiler for Java, a great place to start is Soot. It is extremely cool and has a number of IRs built in (including SSA). I’m using that and the Jikes RVM (née Jalapeño) for my research. Here are some others (all Java) that I uncovered this summer:

  • joeq is a virtual machine and compiler infrastructure that looks promising; it bootstraps like the Jikes RVM but can also load x86 object files and analyze, transform, and execute them alongside Java .class files or SUIF files. It apparently has replaced the venerable SUIF as the infrastructure for Stanford’s compiler course.
  • FLEX/Harpoon another Java compiler, from MIT. I haven’t done much with it, as I couldn’t get the versions I checked out to work on OS X, and the convenience of working on my notebook is non-negotiable at this point.
  • Jakarta BCEL is a tool for manipulating Java bytecodes
  • Also, my friend Andy pointed me to the following tools for mangling Java bytecode, many of which have their roots in the aspect-oriented programming community (which he delightfully characterizes as “CLOS concepts brought out into the bright light of high end mainstream development”): serp, asm, javassist, jmangler and jmunger.

That’s all for now.

Responses

  1. M says:

    July 9th, 2004 at 12:47:10 AM (#)

    I couldn’t get the versions I checked out to work on OS X
    Try Mac on Linux with a PPC distro. This sort of work belongs in Linux anyway, where the tools are.

Leave a Response