What is this?

This document is a tutorial describing MinCaml, the compiler for a subset of The Programming Language ML. The MinCaml compiler is developed in Exploratory Software Project "Beautiful Japan's ML Compiler" in order to popularize the simple and powerful programming language ML and break up the negative spiral of "I don't use ML because I don't know ML." It is implemented in a variant of ML called Objective Caml. Since this tutorial assumes some experience of ML programming as a prerequisite, please first take a look at "One-Hour Super-Express to ML Programming" if you are not already familiar with ML.

[Caution: This English tutorial is a tentative translation from the Japanese version and may still have many rough edges, both technically and linguistically. The academic paper is more complete.]

[Update on September 17, 2008: PowerPC is now supported (in addition to SPARC), thanks to Ms. Masuko and Prof. Asai in Ochanomizu University. You must execute either ./to_ppc or ./to_sparc before make.]

[Another update on September 17, 2008: The register allocator now uses a simpler algorithm. It omits the backtracking (ToSpill and NoSpill) in previous versions.]

[Update on August 27, 2012: x86 with SSE2 (Pentium 4 or later) is now supported. Please execute ./to_x86 before make.]

Next