My research and investigations

Moscow ML and Caml

Moscow ML is a light-weight implementation of Standard ML (SML), with a codebase from CamL Light. Indeed, the bin folder of Moscow ML distribution shows that it depends on Caml runtime.

Caml Light is a lightweight, portable implementation of the core Caml language. Its package consists of a compiler to bytecodes, and a runtime virtual machine to execute the bytecodes — very similar to Java. It also includes an interpreter for learning Caml interactively.

All these are dialects of ML, developed by Robin Milner in 1978 as the MetaLanguage for the LCF proof assistant. Besides being a functional language, it included a type-inference system. You just type in, say the factorial function, very much like mathematics, and ML infers that it has type “int -> int”. This is in contrast to Java where you need to explicitly say something like: int factorial(int n) …

While there are many differences between Caml and Java, they do share enough common features (e.g. both are strongly typed, both uses bytecodes and virtual machines) that I would like to explore further.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: