Version française
Home     About     Download     Resources     Contact us    

The Caml Hump: Programming languages :: Compilers

Recently updated contribs

Older contribs

Development tools
OCaml Batteries Included [09-Jan-2013, version 2.0.0, Stable]
Batteries Included is a candidate standard development platform for OCaml.
Authors: Bluestorm, Edgar Friendly, and David Teller.
Development tools
Js_of_ocaml [17-Dec-2012, version 1.3, Stable] Has a documentation
Js_of_ocaml is a compiler of OCaml bytecode to Javascript. It makes it possible to run Ocaml programs in a Web browser.
Development tools
OCaml for AIX [09-Jan-2012, version 3.12.1, Stable]
This is a port of the OCaml compiler to AIX (PPC) and HP-UX (HPPA).
Author: Christoph Bauer.
Development tools
OCAPIC [12-Sep-2011, version 2.5, Stable] Has a tutorial
A project which brings OCaml to programming PIC micro-controllers.
Authors: Benoit Vaugon, Philippe Wang, and Emmanuel Chailloux.
Development tools
OCamlDuce [29-Aug-2011, version 3.12.1.0, Stable] Has a Godi packageHas a documentationHas a tutorial
OCamlDuce is a merger between OCaml and CDuce. It comes as a modified version of OCaml which integrates CDuce features: expressions, types, patterns.
Author: Alain Frisch.
Development tools
OCamljit [17-Nov-2010, version 2.0, Stable]
OCamlJit 2.0 is a Just-In-Time engine for Objective Caml 3.12.0 on desktop processors (x86/x86-64). It translates the OCaml byte-code used by the interpreter (ocamlrun and ocaml) to x86/x86-64 native code on-demand and runs the generated native code instead of interpreting the byte-code. It is designed to run with minimal compilation overhead (translating only what is being executed, avoiding costly code generation and optimization techniques), while being 100% compatible with the byte-code runtime (including serialization and hashing of closures, etc.).
Author: Benedikt Meurer.
Development tools
ocamlclean [15-Nov-2010, Development code]
ocamlclean takes a bytecode executable (which are generally but not necessarily produced by "ocamlc" compiler) and reduces its size by eliminating some dead code.
Author: Benoit Vaugon.
Development tools
ocamlgadt [15-Nov-2010, Development code] Has a documentation
An experimental branch of the O'Caml compiler: O'Caml extended with Generalized Algebraic Datatypes.
Development tools
OCamljs [07-Sep-2010, version 0.3, Beta] Has a documentation
Ocamljs compiles OCaml to Javascript. It uses the standard OCaml front-end, so the full language is supported (the object system is partially supported, should be fixed soon). Included are several libraries for Web programming, as well as a library for working with Javascript via Camlp4. It works with orpc for RPC over HTTP, and with froc for functional reactive browser programming.
Author: Jake Donham.
Development tools
Pasta [20-May-2010, version 0.04, Alpha] Has a documentation
Pasta is a cross-assembler for the MOS 6502 (also including 65C02 instructions), which contains experimental support for automatic management of certain resources (namely, zero-page memory locations), provided that you are prepared to use a slightly restricted programming style.
Author: Julian Brown.
Development tools
OCaml-Java [18-Feb-2010, version 1.4, Beta]
The goal of the OCaml-Java project is to allow seamless integration of OCaml and Java.
Author: Xavier Clerc.
Development tools
Linux - Win32 cross compiler [18-Nov-2008, Alpha]
A Linux -> Win32 OCaml cross-compiler, developed and sponsored by Red Hat's Fedora MinGW project[1]. Red Hat are sponsoring this project so that we can build our OCaml virt tools for Windows without the hassle of using Windows.
Development tools
csml [16-Sep-2008, version 0.1, Beta] Has a documentation
A system to interface OCaml and .Net/C#. CSML makes it possible to leverage existing .Net components from OCaml, to expose OCaml libraries into the .Net world and more generally to write mixed OCaml/.Net applications. With CSML, developers write scripts that describe interactions between the two worlds (OCaml and .Net). It is possible to bind functions, static or instance methods, properties, to pass opaque pointers from one heap to the other, or to copy values structurally. CSML preserves type safety properties from the two worlds, it propagates exceptions and first-class functions in a sound way and it deals automatically with memory management.
Author: Alain Frisch.
Development tools
CamlPy [02-Apr-2008, version 0.1, Development code]
A library for communicating between python and OCaml, together with a little proof-of-concept interface to WxPython, as a first step towards a better GUI tool for OCaml.
Author: John Whitington.
Development tools
Nickel [10-Sep-2007, version 1.0-alpha, Alpha] Has a documentation
Bridge/Bindings generator for Java/Objective Caml integration.
Author: Xavier Clerc.
Development tools
Cafesterol [10-Sep-2007, version 1.0-alpha, Alpha] Has a documentation
Extension of the Objective Caml compiler suite producing Java binaries (.class/.jar files).
Author: Xavier Clerc.
Scientific software
Fjavac [28-Dec-2005, version 0.4.1, Beta]
A functional Java 5 compiler.
Author: Stephen Tse.
Others
Fjavac [30-Sep-2005, version 0.3.0, Beta]
Fjavac is a Java 5 compiler front-end implemented in the functional language OCaml. Currently the compiler can parse and pretty-print almost all of JDK 1.4.2 and JDK 1.5.0 files (including generics, wildcards, annotations, enumerations, static imports, for-each loops and variable arity arguments). A full compiler (with type inference, capture conversion and type checking) is underway.
Author: Stephen Tse.
Development tools
Neko [19-Aug-2005, version 1.0, Stable] Has a documentation
Neko is an intermediate programming language with its virtual machine. The compiler is written in OCaml and the VM in C. It might be interesting for people involved in language design, since Neko is providing a common reusable runtime for language designers.
Development tools
Min-caml [14-Mar-2005, Beta]
A simple but efficient compiler from a tiny ML subset to the SPARC assembly language.
Author: Eijiro Sumii.
Scientific software
Felix [17-Feb-2005, version 1.0.20, Stable] Has a documentationHas a tutorial
Felix is an Algol like strongly typed procedural programming language with a strong purely functional subsystem, including first class functions, pattern matching, variants, recursion, and (currently only) compile time parametric polymorphism.
Author: John Skaller.
Scientific software
Schoca [26-Oct-2004, version 0.2.3, Beta] Has a Godi package
Schoca is an implementation of the Scheme language. The primary purpose of Schoca is the use as an embedded extension language in OCaml applications.
Author: Christoph Bauer.
Native OCaml libraries
Lua-ml [27-Sep-2004, Beta]
A new API that uses higher-order functions and types to simplify the use of an embedded interpreter.
Scientific software
OCamlJitRun [13-Jul-2004, version 1.5, Stable] Has a documentation
A just in time translator of Ocaml bytecode into machine code (on x86, and perhaps sparcv9 & PowerPC in 32 bits mode).
Scientific software
NML [08-Jul-2004, Beta]
a dynamically typed functional language whose syntax conforms closely to that of OCaml. In addition, it supports overloaded, vectorized, math operations, list comprehensions, and optional and keyword arguments in uncurried argument tuples, possibly with specified default values. It can access OLE compliant, and low-level COM interfaces, supports serial I/O and socket based communication, and provides an ADO connection to external databases. An Emacs mode is supported through a hacked Tuareg interface, as well as a Tcl/Tk interactive browser and interaction window with list pane access to a user modifiable documentation database.
Author: David McClain.
Native OCaml libraries
CDuce [08-Jul-2004, version 0.2.0, Beta] Has a Godi packageHas a documentationHas a tutorial
A strongly typed higher-order functional programming language for XML documents with an efficient type-based runtime implementation.
Author: Alain Frisch.
Scientific software
OCamIL [01-Jun-2004, Alpha]
OCamIL is an experimental OCAML compiler that targets Microsoft .NET.
Scientific software
AlphaProlog [30-Oct-2003, version 0.3, Alpha] Has a documentation
AlphaProlog is a logic programming language with built-in names, fresh name generation, name binding, and unification up to alpha-equivalence.
Author: James Cheney.
Scientific software
Fresh Objective Caml [03-Jul-2003, version 3.06-6, Alpha] Has a documentation
An extension of OCaml with facilities for correctly manipulating object-language syntax involving alpha-convertible names and binding operations.
Author: Mark Shinwell.
Scientific software
Mojave compiler [20-May-2003, version 0.5.3]
A multi-language compiler supporting safe process migration and transactions for programs written in C, Caml, Java, and Pascal.
Author: Jason Hickey.
Development tools
ocamldefun [30-Dec-2002, version 1.11, Stable] Has a documentation
Defunctorizer for OCaml.
Author: Julien Signoles.
Courses
Compilation [27-Nov-2002, Stable]
Lectures notes in French, which uses Objective Caml to implement a complete prototype compiler from Pascal to MIPS.
Author: Luc Maranget.
Courses
Langages et Compilation [26-Nov-2002, Stable]
Lectures notes in French, which uses Objective Caml to implement a complete prototype compiler from Pascal to MIPS.
Author: Didier Rémy.
Scientific software
Combinator Engine [26-Sep-2002, Beta]
A collection of the author's projects on combinator-based implementations of functional languages.
Scientific software
nML [19-Sep-2002, version 0.92b, Beta]
nML is a higher-order and typed programming language, and a dialect / harmony of Standard ML and Objective Caml. The nML compiler system drives the static analysis technologies to the limit, and it will embody the results of the LET project.
Scientific software
PLAN [16-Sep-2002, version 3.22, Stable] Has a documentation
PLAN is a resource-bounded functional programming language that uses a form of remote procedure call to realize active network packet programming. It is part of the SwitchWare Project.
Scientific software
Oxford Oberon-2 Compiler [13-Sep-2002, version 2.0p5, Stable]
A portable compiler that translates Oberon-2 into bytecode.
Author: Mike Spivey.
Courses
Cours de Compilation [03-Sep-2002, Stable]
Lectures notes about compilation (in French)
Courses
Systematic Compiler Construction [03-Sep-2002, Stable]
A compilation course using Caml
Author: Michael Sperber.
Scientific software
Dynamic Caml [16-May-2002, version 0.2, Alpha] Has a documentation
Dynamic Caml is a high-level run-time code generation library for Objective Caml. Implementation is based on an abstract polymorphic type 'a code and function eval : 'a code -> 'a that evaluates it. We introduce various constructors for the code type. All types within dynamically generated code are statically checked at programs compile time.
Authors: Dmitry Lomov and Anton Moskal.
SCaml [12-Dec-2001, Stable]
A patch, against OCaml 3.07, making it possible to: create, link against and dynamically load shared objects on i386 ELF and Win32 platforms.
ocaml-option [09-Aug-2001, version 2001-01-04, Beta]
A patch against OCaml 3.00. It implements a proposal for a tiny extension of the OCaml module system, allowing optional value fields in module types. This is similar to optional arguments.
Author: Alain Frisch.