My thesis will be an idiosynchratic blend of
programming languages (logic and functional),
linear logic
and
game theory.
My two advisors are
Christophe Fouqueré
and
Jean-Vincent Loddo.
I'm interested in programming languages, including their semantics and efficient implementation.
Most of my recent experience revolves around functional languages,
compilers and runtime systems (particularly garbage collection).
I've also developed a deep interest in algorithms, parallel computation,
concurrency and, to a lesser extent, computer networks and virtualization.
I'm a very strong programmer in C, C++, Scheme and ML.
I also claim at least some proficiency in a dozen or so other
languages, most of which (for example Java) don't deserve any publicity; the ones which do
include Forth, Prolog, Haskell and APL.
I teach
DLL (Development of Free Software: a small course about the history, philosophy and practice of
free software; Master 1 Informatique,
Institut Galilée,
Université Paris Nord),
PFA (Advanced Functional Programming: Master 2 PLS, Institut Galilée, Université Paris Nord; I do the class part, and
Jean-Yves Moyen prepares and manages lab sessions) and PI (Imperative Programming: Licence 1 Informatique, Institut Galilée, Université Paris Nord; I only do exercise and lab sessions for group 6; the course is managed by Sébastien Guérif.
After the end of my first course in 2007 a group of students asked me more pointers about how to use GNU/Linux from the command line.
Here are my suggestions.
Status Report: Marionnet --- How to Implement a Virtual Network Laboratory in Six Months and Be Happy Jean-Vincent Loddo, Luca Saiu, 2007
ACM SIGPLAN Workshop on ML, Freiburg (Germany), 2007
The first part is a simple user-oriented introduction to Marionnet.
Section 7 outlines a possible usage scenario for Marionnet, not related to teaching.
Drafts and Technical Reports
About garbage collection:
Scalable BIBOP garbage collection for parallel functional programs on multi-core machines
Luca Saiu, draft, 2011
An application of the BIBOP technique to the problem of improving memory locality in functional language implementations.
Talks
Here is a list of some talks of mine.
About Parallel garbage collection:
Lately I've strongly concentrated on memory management for parallel machines, and the parallel
garbage collector I've implemented has raised some interest.
2008-10-17: Scalable BIBOP garbage collection for parallel functional programs on multi-core machines.
Groupe de travail Programmation,
PPS.
Longer and more advanced compared to my talk on the same topic for LCR.
The talk was in French. Here are the slides, in English:
2008-09-29:
A two-hour seminar on my parallel garbage collector. Logic group, LCR, LIPN, Université Paris 13.
On the whiteboard, no slides.
It was my first official seminar in French. I hope my barbaric rendering of that beautiful language
wasn't too hard on the listeners' ears.
2008-11-28: Scalable BIBOP garbage collection for parallel functional programs on multi-core machines.
Journée du GDR LTP,
Groupe de travail Langages, Types et Preuves,
ENSIIE, Evry.
In French, using the PPS slides.
2011-06-20: GNU epsilon - an extensible programming language;
SPO group, Imperial College, London, United Kingdom.
A presentation about epsilon and the language reductionism idea; relatively non-technical and accessible.
I used this set of slides:
2007-05-29: LIPN, Université Paris 13: evaluation of the finance request for my thesis to the French
Ministère de l'Education Nationale, Enseignement Supérieur et Recherche.
I used this short presentation:
About Marionnet:
I've given many talks about
Marionnet between 2007 and 2011, often including a live demo, and
sometimes with the other co-author of Marionnet, Jean-Vincent Loddo.
Here are just some:
In many of the
older talks I used some variant of the slides below and the video below.
Anyway the new material from FOSDEM 2011
(above) better
reflects the recent advances of the project, and looks much better in
general.
2011-03-24: Logiciel Libre: philosophie, histoire et pratique,
Institut Galilée,
Université Paris 13.
A good introduction to Free Software.
I've given the talk in French, using a set of slides in English:
I'm an official GNU maintainer, and I deeply believe in free software.
By the way, I've studied in depth the
GNU General Public License version 3, released in June 2007. I like it very much, and I've upgraded all my maintained software which was currently covered by "GPLv2 or later" to "GPLv3 or later".
I urge you to do the same, and use "GPLv3 or later" for your new projects.
Here is the experimental video rotation from the FSF -
apparently when there is no recent video, they replace it with a widget for
subscribing to the newsletter, so you might see the subscription form below:
(2001-)
My most ambitious project. Its homepage
should be updated, but epsilon is very much alive.
I'm now starting its fourth re-implementation from scratch.
epsilon's parallel garbage collector is very interesting and has evolved into an independent project.
NAUSEA
(2005-) with
Dario Russo. Extremely cool. LOGOS, again written with Dario Russo, is just one of its
possible applications.
See the
NAUSEA project page
on Savannah.
A minor mode for Emacs.
Not polished and not released yet, but here's a video demonstration of a not-so-recent version.
It works with GNU Emacs 22 and later (a hook I use has been renamed since Emacs 21).
The new lexicon for epsilon is going to make use of this, but --as any
minor mode--
the
glyphification-mode is conceived to be useful in many different contexts and for most languages.
ICFP programming contests
(2004, 2005, 2006)
alone in 2004 and 2005, with Marco Righi in 2006.
Older projects, stuff which is currently unmaintained or not maintained by me
Most of this could be classified as recreational Computer
Science -- which doesn't imply that it can't be interesting, or
even contain pretty advanced stuff.
Most of these hacks were implemented in one or two days, and their
packaging and presentation is far from optimal.
Partial evaluation
An online partial evaluator with support for partially-static data for a simple
flowchart language with S-expressions as data structures.
It optimizes in a quite aggressive way, and does not always
exactly preserve semantics: computations may be discarded (specializing
some non-terminating subject progams yields terminating residual
programs), even if they are never duplicated.
The classic feed-forward network with backpropagation, more or less
the same as the one written by every Computer Science student in the
world. You also wrote one, didn't you?
APL keyboard
My hand-made APL keyboard is my only published "hardware hack" so far.
Project Euler
I like to solve Project Eurler problems
using Guile (a Scheme implementation
and the GNU extension language), in the mean time before
epsilon
becomes mature enough for this. It shouldn't take long now.
What I'm interested in here is language expressivity, and my solutions
usually don't employ advanced mathematics; rather, I want to
factorize my code as far as possible into reusable abstractions.
I've written much of my personal Scheme macro library starting from some of
these problems.
So far I've used Guile for all of my submissions.
Personal
To do: write something here. Or, even better, don't.
To do: refactor. Look at
this,
this,
and also at
this.
My public GPG key
You can find my GNU Privacy Guard public key here.
Please come back in a few days...
I'm going to fill (most of) the stubs real soon now. Yeah, trust me.