Compiling Standard ML to Java bytecodes

  • Nick Benton ,
  • Andrew Kennedy ,
  • G. Russell

3rd ACM SIGPLAN International Conference on Functional Programming |

Published by ACM Press

MLJ compiles SML’97 into verifier-compliant Java bytecodes. 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.