Authors
Nick Benton, Andrew Kennedy and George Russel
Abstract
MLJ compiles SML'97 into
verifier-compliant Java byte-codes. Its features include type-checked
interlanguage working extensions which allow ML and Java code to call each
other, automatic recompilation management, compact compiled code and runtime
performance which, using a 'just in time' compiling Java virtual machine,
usually exceeds that of existing specialised bytecode interpreters for ML.
Notable features of the compiler itself include whole-program optimisation
based on rewriting, compilation of polymorphism by specialisation, a novel
monadic intermediate language which expresses effect information in the type
system and some interesting data representation choices.
Full Text
[pdf]