Welcome to the Rice PLT homepage of


A compiled, type-safe, multi-stage programming language.



MetaOCaml is a multi-stage extension of the OCaml programming language, and provides three basic constructs called Brackets, Escape, and Run for building, combining, and executing future-stage computations, respectively.  (Please read README-META file in distribution for MetaOCaml's syntax for these constructs).  MetaOCaml is a compiled dialect of MetaML.

Download current (February 3nd, 2006) (or archived distributions) and follow instructions in INSTALL-META. For Windows, you'll need Cygwin


Hot from the Press!: Science of Computer Programming special issue on MetaOCaml



Learn more about multi-stage programming.

Getting Started

Related Systems

MetaML:  An interpreted, multi-stage ML

Tempo:  A C partial evaluation system

DyC:  A dynamic compilation framework

'C:  A compiled, two-level C

Fabius:  An RTCG ML compiler


The MetaOCaml Team

Walid Taha

Cristiano Calcagno

Xavier Leroy

Ed Pizzi

Emir Pasalic

Jason Lee Eckhardt

Roumen Kaiabachev

Oleg Kiselyov


Liwen Huang


This work was funded by NSF ITR on "Putting Multi-stage Annotations to Work"
This page was designed with the help of Molly Bigelow