LRDE Projects
Olena is a platform dedicated to image processing and pattern recognition. Its core component is a generic and efficient C++ library called
Milena. Milena provides a framework to implement simple, fast, safe, reusable and extensible image processing tool chains. The library provides many ready-to-use image data structures (regular 1D, 2D, 3D images, graph-based images, etc.) and algorithms. Milena's algorithms are built upon classical entities from the image processing field (images, points/sites, domains, neighborhoods, etc.). This design allows image processing developers and practitioners to easily understand, modify, develop and extend new algorithms while retaining the core traits of Milena: genericity and efficiency.
On top of Milena, the Olena platform also features optional modules such as Swilena, a component exposing Milena to other languages thanks to the
Simplified Wrapper and Interface Generator (SWIG); and the SCRIBO module for Document Image Analysis.
The Olena platform is Free Software. It is distributed under the conditions of the GNU General Public License (GPL) version 2.
Vaucanson is a finite state machine
manipulation platform, consisting of a library and tools implemented
on top of it. It benefits from the expertise we gained from
our intensive work on high performance generic programming for
Olena. On the other hand, its theoretical
well-foundedness in the area of automata is ensured thanks to a
collaboration with Jacques Sakarovitch, at the Ecole Nationale
Supérieure des Télécommunications (ENST), and with Sylvain Lombardy
at the Institut Gaspard Monge (Université Paris-Est, Marne-la-Vallée).
Thanks to the keyword
template, and almost by accident, C++ is a very special language where one can not only specify what a program will do once compiled, but in addition one can specify how
the compiler will compile a program. This feature gave birth to powerful programming techniques, commonly referred to as ``metaprogramming''. Because of its committment in the
Olena and
Vaucanson projects, the LRDE has developped expertize in metaprogramming. Unfortunately the implementation is tricky and very error-prone.
Starting from the simple idea that ``we want metaprogramming efficiency, but we don't want to write it'', the
Transformers project was initiated. It aims at converting naive (but decent) C++ programming into high-speed (but indecent) C++ source code. To this end, several tasks must be addressed: basically the
Transformers project aims at designing a set of tools to manipulate C++ programs.
The
TigerCompiler project is a C++ implementation of a Tiger compiler.
The Tiger language is described by Andrew Appel in his "Modern Compiler Implementation" books, and constitutes an important project in the EPITA curriculum. The needed material is referenced in the
TigerLinks,
in particular
http://www.lrde.epita.fr/~akim/compil/assignments.html.
Spot is an object-oriented model checking library written in C++. It offers a set of bricks to experiment with and develop your own model checker
based on transition-based generalized Büchi automata.
Spot was born in the
MoVe team at
LIP6 and is now co-maintained by the LRDE.
Development Projects
- Ad Hoc: an automatic cancer detection project.
- MetaGene: generating static C++ from pseudo Caml code.
- Miscellaneous Projects: various tools developed to fit specific needs.
- PrcsWrapper: paperware improving the interface of prcs.
- Vampire: running a test suite on a batch of machines.
- Tiger.Havm: An interpreter for Andrew Appel's Tiger Intermediate Language.
- Funny: a functional flavor code platform for C++.
- Mical: a regular grammar inference library.
- Evidenz: a Dempster-Shafer engine.
- Vcs: A wrapper over Version Control Systems.
Old Projects
Urbi et Orbi: a distributed environment framework.
The Urbi et Orbi project aims to build a distributed environment framework
whose first applications are virtual worlds. Virtual worlds are virtual 3D
scenes personneld with common objects (houses, trees, etc.),avatars (i.e. the
virtual image of the users) in which one may walk around and interact. In
addition, this virtual world is distributed,in the sense that its full description is spread over several computers, connected via a network. There is no needfor a single host to have a full knowledge of the world. We focus on virtual worlds for a large audience, therefore there are no other material
requirements than a standard personal machine, with a connection to a local
network or the Internet. Windows and unix or linux platforms are supported.
Scalability is required.
Student Projects
to top