ML Kit Download  |  Documentation  |  Papers  |  Bugs  |  People  |  About

Home : About

About the ML Kit

History, Goals and Approach

Original ML Kit Logo The development of the ML Kit began in 1989 at Edinburgh University. Originally, the project had two purposes:
  1. to provide an implementation that is consistent with the language definition
  2. to provide a service to the research community by providing a highly modular system, parts of which can be reused by other compiler writers
These goals are still intact. Specifically, in order to facilitate code reuse and reliability of the front-end of the Kit, we have Since the work on region-based memory management started in the Kit (in 1994), goals specific to region-based memory management have been added: Version 2 of the Kit did provide good control over memory resources for Core ML programs, but it did not compile all of Standard ML and the compilation was very slow.

Version 3 compiles all of Standard ML, in particular Modules are compiled using a technique called static interpretation. Moreover, considerable effort was devoted to tuning the system. The general approach we take in the Kit is to try to get the functionality right first and then gradually replace inefficient data structures and algorithms with better ones. A nice side-effect of this strategy is that the Kit contains more and more reusable modules that implement classical data structures and algorithms from the literature. Examples include sorting, union-find, Patricia trees and directed graphs (strongly connected components, etc.)

Version 4.0.0 has support for garbage collection in combination with region inference and the HP backend of version 3.0 has been replaced with a native backend for Intel's x86 architecture and a bytecode backend. Many more features have been added to the ML Kit since version 3.0; see the documentation for details.

Acknowledgments

The ML Kit is software partly delivered by the DART research project, which is sponsored by the Danish Research Council for Natural Sciences.

People whom we wish to thank for contributing with bug reports include, but are not limited to (in alphabetical order) Johnny Andersen, Ken Friis Larsen, Daniel Wang, and Stephen Weeks.

Other Standard ML Implementations


The ML Kit is hosted by the IT University of Copenhagen mlkit@it.edu