User

Roland Levillain

From LRDE

I am a former member of EPITA and LRDE, where I worked from July 2004 to July 2014. I am now with Google London.


  • Email: roland.levillain at lrde.epita.fr


Research Interests

[[Category:Widgets]]
  • Programming Languages, Compilation and Interpretation
  • Generic Programming and Metaprogramming
  • Image processing
  • Mathematical Morphology

Lectures and Student Project Management

See also the course list page.

  • At EPITA
    • in 2007–2014:
      CMP1
      Compiler Construction (first part), 3rd year students, 12 + 12 + 15 hours.
      CMP2
      Compiler Construction (second part), 3rd year students, 12 hours.
      TYLA
      Typology of Programming Languages, 3rd year students, 12 + 13,5 hours.
      The Tiger Project
      Teaching programming techniques through compiler construction (see below).
    • in 2012:
      CPP
      C++ Language, 3rd year students, 2 x 10 hours.
  • At ESIEE
    • in 2013–2014:
      Genericity and C++
      4th year students, 12 hours.

Past Lectures

  • At Université Paris X - Nanterre (2007 and 2008):
    UNIX
    Introduction to Unix: 5th year (Master) students, 20 hours.
  • At ETNA (2005):
    Compilation and Interpretation
    1st year students.

Software Projects

I worked on the following projects for research, development and educational purposes as a developer and a maintainer:

Olena.jpg Olena

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23
A software platform for generic and efficient image processing. The core of Olena is a generic C++ library, Milena, using a programming paradigm mixing Object-Oriented Programming (OOP) and Generic Programming (GP), called SCOOP.
Tiger.png Tiger Compiler
This project aims at developing a compiler for the Tiger language, written in C++ 2011. It is part of the EPITA curriculum.

I also maintained the following projects:

Lrde.png HAVM

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23
HAVM is a virtual machine designed to execute simple register-based high level intermediate code. It is based on the Tree intermediate language defined by Andrew Appel in his Modern Compiler Implementation books.
Lrde.png Nolimips

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23
A MIPS-based simulator with "infinitely many registers". It consists of an assembler which reads MIPS assembly code, and of a virtual machine which executes the instructions processed by the assembler.
Lrde.png MonoBURG

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23
A code generator generator, a tool that produces a function from a tree-pattern description of an instruction set. This is a fork of the original implementation from the Mono Project.
Lrde.png LRDE Share

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Undefined index: type in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23

Notice: Trying to get property of non-object in /srv/mediawiki-1.32.0/extensions/Widgets/compiled_templates/04f5f1c22dc67ff80317fe7242dce99e54cc27a8_0.wiki.Ohloh Project.php on line 23
Share is a set of useful files for writing LaTeX documents (style files, bibliographies, Make helpers, etc.). This repository is mainly used by members of LRDE but anybody may use it freely.

Publications

See also my Google Scholar page.

Conference and Workshop Papers

 AuthorTitlePublished inDate
Practical Genericity: Writing Image Processing Algorithms Both Reusable and EfficientRoland Levillain
Thierry Géraud
Laurent Najman
Edwin Carlinet
Practical Genericity: Writing Image Processing Algorithms Both Reusable and EfficientProgress in Pattern Recognition, Image Analysis, Computer Vision, and Applications – Proceedings of the 19th Iberoamerican Congress on Pattern Recognition (CIARP)10 September 2014
Resources for the DAS 2014 submissionGuillaume Lazzara
Thierry Géraud
Roland Levillain
Planting, Growing and Pruning Trees: Connected Filters Applied to Document Image AnalysisProceedings of the 11th IAPR International Workshop on Document Analysis Systems (DAS)10 December 2013
Writing Reusable Digital Topology Algorithms in a Generic Image Processing FrameworkRoland Levillain
Thierry Géraud
Laurent Najman
Writing Reusable Digital Topology Algorithms in a Generic Image Processing FrameworkWADGMM 20108 August 2012
Writing Reusable Digital Geometry Algorithms in a Generic Image Processing FrameworkRoland Levillain
Thierry Géraud
Laurent Najman
Writing Reusable Digital Geometry Algorithms in a Generic Image Processing FrameworkProceedings of the Workshop on Applications of Digital Geometry and Mathematical Morphology (WADGMM)30 July 2012
The SCRIBO Module of the Olena Platform: a Free Software Framework for Document Image AnalysisGuillaume Lazzara
Roland Levillain
Thierry Géraud
Yann Jacquelet
Julien Marquegnies
Arthur Crépin-Leblond
The SCRIBO Module of the Olena Platform: a Free Software Framework for Document Image AnalysisProceedings of the 11th International Conference on Document Analysis and Recognition (ICDAR)1 June 2011
Une approche générique du logiciel pour le traitement d'images préservant les performancesRoland Levillain
Thierry Géraud
Laurent Najman
Une approche générique du logiciel pour le traitement d'images préservant les performancesProceedings of the 23rd Symposium on Signal and Image Processing (GRETSI)13 May 2011
Why and How to Design a Generic and Efficient Image Processing Framework: The Case of the Milena LibraryRoland Levillain
Thierry Géraud
Laurent Najman
Why and How to Design a Generic and Efficient Image Processing Framework: The Case of the Milena LibraryProceedings of the IEEE International Conference on Image Processing (ICIP)26 May 2010
Milena: Write Generic Morphological Algorithms Once, Run on Many Kinds of ImagesRoland Levillain
Thierry Géraud
Laurent Najman
Milena: Write Generic Morphological Algorithms Once, Run on Many Kinds of ImagesMathematical Morphology and Its Application to Signal and Image Processing – Proceedings of the Ninth International Symposium on Mathematical Morphology (ISMM)9 April 2009
TWEAST: A Simple and Effective Technique to Implement Concrete-Syntax AST Rewriting Using Partial ParsingAkim Demaille
Roland Levillain
Benoît Sigoure
TWEAST: A Simple and Effective Technique to Implement Concrete-Syntax AST Rewriting Using Partial ParsingProceedings of the 24th Annual ACM Symposium on Applied Computing (SAC'09)11 October 2008
Semantics-Driven Genericity: A Sequel to the Static C++ Object-Oriented Programming Paradigm (SCOOP 2)Thierry Géraud
Roland Levillain
Semantics-Driven Genericity: A Sequel to the Static C++ Object-Oriented Programming Paradigm (SCOOP 2)Proceedings of the 6th International Workshop on Multiparadigm Programming with Object-Oriented Languages (MPOOL)26 May 2008
A Set of Tools to Teach Compiler ConstructionAkim Demaille
Roland Levillain
Benoît Perrot
A Set of Tools to Teach Compiler ConstructionProceedings of the Thirteenth Annual Conference on Innovation and Technology in Computer Science Education (ITICSE'08)29 March 2008
Algorithme de calcul de l'arbre des composantes avec applications à la reconnaissance des formes en imagerie satellitaireAnthony Baillard
Christophe Berger
Emmanuel Bertin
Thierry Géraud
Roland Levillain
Nicolas Widynski
Algorithme de calcul de l'arbre des composantes avec applications à la reconnaissance des formes en imagerie satellitaireProceedings of the 21st Symposium on Signal and Image Processing (GRETSI)11 May 2007
Effective Component Tree Computation with Application to Pattern Recognition in Astronomical ImagingChristophe Berger
Thierry Géraud
Roland Levillain
Nicolas Widynski
Anthony Baillard
Emmanuel Bertin
Effective Component Tree Computation with Application to Pattern Recognition in Astronomical ImagingProceedings of the IEEE International Conference on Image Processing (ICIP)3 May 2007

Thesis

 AuthorTitleDate
Towards a Software Architecture for Generic Image ProcessingRoland LevillainTowards a Software Architecture for Generic Image Processing1 November 2011

Technical Reports

Oral Presentations

Others

Conferences Organization