HLVM is a garbage collected virtual machine built upon LLVM: http://forge.ocamlcore.org/projects/hlvm/ The development of HLVM was described in a series of three OCaml Journal articles that turned out to be among our most popular. Consequently, we have decided to run another series of related articles that build upon this foundation in order to develop complete compilers. The first article describes a compiler written in only 228 lines of code that can execute interesting programs: http://ocamlnews.blogspot.com/2009/06/compiler-development-part-1.html For example, the compiler described in the article can execute the following OCaml-like program to print the Mandelbrot set: # let rec pixel((n, zr, zi, cr, ci) : int * float * float * float * float) : unit if n = 65536 then print_char ' ' else if zr * zr + zi * zi >= 4.0 then print_char '.' else pixel(n+1, zr * zr - zi * zi + cr, 2.0 * zr * zi + ci, cr, ci);; # let rec row((i, j, n) : int * int * int) : unit if i>n then () else begin let cr = 2.0 * float_of_int i / float_of_int n - 1.5 in let ci = 2.0 * float_of_int j / float_of_int n - 1.0 in pixel(0, 0.0, 0.0, cr, ci); row(i+1, j, n) end;; # let rec col((j, n) : int * int) : unit if j>n then () else begin row(0, j, n); print_char '\n'; col(j+1, n) end;; # let rec mandelbrot(n : int) : unit col(0, n);; # mandelbrot 77;; In particular, our compiler runs this program interactively 50x faster than the OCaml top-level and 60% faster than native-code compiled OCaml! The complete source code of HLVM and the example programs including this compiler are freely available under a BSD license and may be downloaded from HLVM's SVN repository as follows: svn checkout svn://svn.forge.ocamlcore.org/svnroot/hlvm -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e