MLj 0.2 User Guide

  • Nick Benton ,
  • Andrew Kennedy ,
  • George Russell

February 1999

The MLj Compiler is a complete system for Standard ML to Java1 bytecode compilation. MLj can be operated from the command line or interactively from a compilation environment. It manages multiple modules automatically; parsing, type checking, and partially compiling separate SML structures and signatures as necessary and then linking them together, applying various optimisations and finally producing a single zip file containing Java classes. This approach to separate compilation is unusual. No intermediate object files are produced (say, as separate Java classes) and most of the work in compilation happens after linking. Of course, this has an adverse effect on the speed of re-compilation, but it does enable better code to be produced.