About Ravi
Premiers pas avec Ravi
Scheme Tutorial
Objets Scheme
Le shell ravi
Starting Ravi
Le module trace
Les ports d'E/S
The C Parser
load, require, modules
Système d'interruptions
Scheme compiler
C++ mode
Generating C++ Modules
La déclaration struct
Le type "C-object"
More information



Welcome to the Ravi home page. Ravi is an open multilanguage platform for interactive programming.

"Multilanguage" means that an application is constructed from source modules written in different languages. "Interactive" means that these modules are dynamically loaded into a shell, and can be used via your preferred language. Cross-language calls are part of the game.

Programming languages currently supported are C, C++, Scheme, Prolog, and an OPS-style production system language. Most work actually done uses C++ and Scheme; much effort has gone into making this work smoothly. The Prolog and OPS implementations are used in a teaching project.

Our major application currently is the Imalab project, a sophisticated computer vision system combining low-level modules written in C++, and high-level, Artificial Intelligence type modules (like control and learning) written in Scheme.

Freely mixing programming languages is made possible through the use of metaprogramming, especially for what one can call "Interface Generation".

Ravi is developped by members of the Prima team, with initial contributions by Augustin Lux, Claude Poizat, Bruno Zoppis.

We are preparing a freely available download version of the Ravi system. For the moment, distribution is limited, you can ask the first author for a copy of the system.


We are currently rewriting the documentation: most of it was old and in French; what's coming is fresh, up to date, and in English. In fact, the system has developed over years through intensive use, and the final design now is clear.

Main Titles