Project : cristal
Section: Software
Advanced software
The following software developments are publicly distributed (generally under Open Source licenses), actively supported, and used outside our group.
Caml Light
Participants : Xavier Leroy, Damien Doligez, Pierre Weis.
Caml Light is a lightweight, portable implementation of the core Caml language. It is still actively used in education, but most other users have switched over to its successor, Objective Caml.
Web site: http://caml.inria.fr/index.en.html.
Objective Caml
Participants : Xavier Leroy, Damien Doligez, Jacques Garrigue [Kyoto University], Maxence Guesdon, Luc Maranget [project Moscova], Jérôme Vouillon [CNRS, U. Paris 7], Pierre Weis.
Objective Caml is our main implementation of the Caml language. From a language standpoint, it extends the core Caml language with a fully-fledged object and class layer, as well as a powerful module system, all joined together by a sound, polymorphic type system featuring type inference. The Objective Caml system is an industrial-strength implementation of this language, featuring a high-performance native-code compiler for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc, Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler and interactive loop for quick development and portability. The Objective Caml distribution includes a comprehensive standard library, as well as a replay debugger, lexer and parser generators, and a documentation generator.
Web site: http://caml.inria.fr/index.en.html.
Camlp4
Participant : Michel Mauny.
Camlp4 is a source pre-processor for Objective Caml that enables defining extensions to the Caml syntax (such as syntax macros and embedded languages), redefining the Caml syntax, pretty-printing Caml programs, and programming recursive-descent, dynamically-extensible parsers. For instance, the syntax of OCaml streams and recursive descent parsers is defined as a Camlp4 syntax extension. Camlp4 communicates with the OCaml compilers via pre-parsed abstract syntax trees. Originally developed by Daniel de Rauglaudre, Camlp4 has been maintained since 2003 by Michel Mauny.
Web site: http://caml.inria.fr/index.en.html.
CDuce
Participants : Alain Frisch, Giuseppe Castagna [ENS Paris], Véronique Benzaken [LRI, U. Paris Sud].
CDuce is a functional programming language adapted to the safe and efficient manipulation of XML documents. Its type system ensures the validity (with respect to some DTD) of documents resulting from a transformation on valid inputs. CDuce features higher-order and overloaded functions, implicit subtyping, a powerful pattern matching operations based on regular expression patterns, and other general purpose constructions.
Starting from the 0.2.0 release, CDuce includes a typeful interface with Objective Caml, which allows a smooth integratation of the two languages in a complex project. CDuce units can use existing Objective Caml libraries without the burden of writing any stub code, and they can themselves be used from Objective Caml.
Several version have been released in 2005. They include improvements over run-time efficiencies, a stronger support for XML Schema and for XML Namespaces, and various additions to the surface language and improvements of error messages.
Web site: http://www.cduce.org/.
Cameleon
Participants : Maxence Guesdon, Pierre-Yves Strub [ingénieur expert MIRIAD].
Cameleon is a customizable integrated development environment for Objective Caml, providing a smooth integration between the Objective Caml compilers, its documentation, standard editors, a configuration management system based on CVS, and specialized code generation tools, such as DBForge (stub generator for accessing SQL databases).
Web site: http://home.gna.org/cameleon/.
ActiveDVI
Participants : Pierre Weis, Didier Rémy, Roberto Di Cosmo [U. Paris 7], Jun Furuse [U. Tokyo], Alexandre Miquel [U. Paris 7].
ActiveDVI is a programmable viewer for DVI files produced by the TeX and LaTeX text processors. It provides many fancy graphic effects and can use any X Windows application as plug-in, therefore allowing a demo to be embedded in a presentation, for instance. ActiveDVI provides an excellent Unix/LaTeX-based alternative to PowerPoint presentations. In particular, it supports time recording in slide shows: a lecture can be post-synchronized with the speaker's words. ActiveDVI uses the Camlimages library developed by J. Furuse and P. Weis for displaying embedded images.
Web site: http://pauillac.inria.fr/advi/.
WhizzyTeX
Participant : Didier Rémy.
WhizzyTeX is an Emacs extension that allows previewing of a LaTeX document in real-time during editing.
Web site: http://cristal.inria.fr/whizzytex/.