Luca Saiu
I'm a temporary teaching and research associate
working in the LCR group, LIPN, Université Paris Nord.
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.
Contact information
This page explains how to contact me.
Only if you are behind LIPN's firewall (sorry for that), you can even directly connect to
the workstation I phisically work on, in my office.
Interests
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.
(Some) peer-reviewed publications
-
About game theory:
-
About Marionnet:
-
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
This is a reasonably detailed description of how Marionnet is implemented.
-
Marionnet: a virtual network laboratory and simulation tool
Jean-Vincent Loddo, Luca Saiu, 2008
SimulationWorks, Marseille (France), 2008
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.
-
About GNU epsilon:
-
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:
-
2008-07-11: GNU Hackers Meeting 2008, Bristol, United Kingdom.
-
2008-07-04: Rencontres Mondiales du Logiciel Libre, Mont de Marsan.
-
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:
-
2007-04-02: LCR, LIPN, Université Paris 13. My first seminar at LIPN.
Here is the presentation, reflecting the state of epsilon at the time:
-
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:
-
2011-02-06: FOSDEM 2011, Bruxelles, Belgium
-
2008-11-20: Savante Banlieue 2008, Villetaneuse
-
2008-03-04: SimulationWorks 2008, Marseille
-
2008-02-08: Journée ResCom,
Université Paris-Est, Marne-la-Vallée.
-
2008-01-29: LIPN (for the lab evaluation)
-
2007-11-??: Groupe de travail Programmation,
PPS
-
2007-10-12: Savante Banlieue 2007, Villetaneuse
-
2007-10-05: ACM SIGPLAN Workshop on ML 2007, Freiburg, Germany
-
...several other places.
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.
-
About Free Software:
-
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:
-
2010-02-19: Logiciel Libre: philosophie, histoire et pratique,
Institut Galilée,
Université Paris 13.
Same slides.
-
2009-12-15: Logiciel Libre: philosophie, histoire et pratique,
IUT de Villetaneuse,
Université Paris 13.
A previous version of the same slides.
Politics
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.
I'm an
associate member
of the
Free Software Foundation
and a
fellow
of the
Free Software Foundation Europe.
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:
I'm a
Wikipedian:
We should boycott companies joining MPEG LA's patent pool. Plase sign this pledge.
I also boycott Sony, and urge everybody to do the same. See
this page
for more information, and the e-mail I wrote them.
Projects
GNU epsilon
(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.
Marionnet
(2007-)
with Jean-Vincent Loddo.
This also includes a simple but very nice
kernel hack.
Now Marionnet has its own
home page.
glyphification-mode
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
"Youth" projects
From the long gone years when I considered C++ my favorite language.
Miscellaneous hacks of mine
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.
An optimizing brainf*ck compiler
Neural networks
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.
This is the master copy of my home page located at http://www-lipn.univ-paris13.fr/~saiu.
Luca Saiu
Last modified: 2012-01-26
Copyright © 2007, 2008, 2009, 2010, 2011 Luca Saiu
Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.