See
http://c2.com/cgi/wiki?JbRainsberger
and
http://www.jbrains.ca