Basile STARYNKEVITCH
An english version of
this page is available.
Qui suis-je?
- Né en août 1959.
- Marié et père de 4 enfants (et
déjà grand-père): Jean, Anne, Marie,
Matthieu.
- adresse postale: 8, rue de la Faïencerie, 92340 Bourg
La Reine, France
- je suis revenu (le 15 septembre 2004) au CEA
LIST/DILS comme
ingénieur-chercheur (j'y travaille sur les
compilateurs optimisants pour l'embarqué, l'analyse
statique, ...). Je n'y ai pas de page web
professionnelle, car le management intermédiaire ne
l'autorise pas. Frama-C
est développé par des collègues. Je
travaille principalement sur GCC en particulier la branche
MELT
(financé par des projets tels que GlobalGCC ou OpenGPU).
MELT fournit un langage de haut niveau pour développer
des extensions de GCC et en faire un compilateur sur mesure,
adapté à vos besoins.
- du 15 septembre 2003 au 14 septembre 2004 j'ai eu le
privilège de travailler (en étant
détaché pendant un an) comme ingénieur de
recherches (
spécialiste issu de l'industrie
)
à l'INRIA dans l'équipe Cristal sur la persistence
orthogonale et la traduction de bytecode à la
volée dans Ocaml. Voici ma page à
l'INRIA
- Auparavant ingénieur informaticien de recherches au
Commissariat à l'Energie
Atomique
- Formation: ancien élève de l' École Normale
Supérieure de Cachan (1980, section A1 =
math) et docteur de l'Université Paris 6 (1990) en
infomatique
Intérêts informatiques
Je m'intéresse aux compilateurs et aux langages de
programmation. J'ai hérité cet intérêt
de mon père défunt Dimitri (inventeur du langage
PAF
sur la CAB500,
similaire au Basic en 1958).
Les systèmes à base de connaissances et les
systèmes reflexifs m'intéressent beaucoup. La
méta-programmation me parait pertinente et trop peu
utilisée. Je pense qu'il faudrait fournir beaucoup de
connaissances déclaratives aux ordinateurs (y
compris des métaconnaissances pour les utiliser).
Les traitements symboliques m'intéressent, mais le
calcul numérique m'ennuie. Les systèmes
Maciste/Caia de J.Pitrat et Tunes me paraissent prometteurs. Je
recommande le dernier livre de J.Pitrat
Artificial Beings. Je suis membre de l'AFIA.
J'utilise beaucoup les logiciels libres (et j'y contribue) ou
opensource (voir aussi
l'APRIL et l'AFUL). J'utilise Linux depuis la
version 0.99.15 du noyau (1993?). Je pense que le logiciel libre
va avoir de plus en plus de succès, en particulier parce
que l'espèce humaine est incapable de manager/gérer
le développement logiciel (le management ne peut
pas exister). Seul le mode organique de
développement communautaire de logiciel libre va
être capable de produire des logiciels de plus en plus
complexes ou importants. Je suis membre de l'APRIL.
Je suis intéressé par les langages de
programmation; je connais évidemment C, Java, C++ (que je
déteste et qui est le Cobol actuel, donc inadapté
à tout), Scheme, CommonLisp, Smalltalk. J'aime beaucoup
Ocaml. Les langages de
scripts sont souvent intéressants (sauf Tcl -
Ousterhout y fait l'hypothèse fausse qu'un script reste
petit), par exemple Ruby
(et Ocaml).
Les langages de balise XML (notamment avec DocBook) et les
formateurs de texte Lout et LaTeX me
paraissent adaptés pour produire des documents. Je ne
connais pas Word (et il faut énormément de temps
pour l'apprendre, notamment connaître les astuces pour y
contourner les nombreux bogues).
La méta-programmation, c'est à dire la
génération automatique et dynamique de programme
(à partir d'une représentation de plus haut niveau)
est une approche intéressante (mais trop peu
utilisée) pour beaucoup de problèmes.
La gestion automatique de la mémoire par un ramasse-miettes
me parait presque toujours indispensable. Gérer la
mémoire à la main (comme en C et C++) est une perte
de temps pour le programmeur comme pour la machine. Quand je suis
obligé de coder en C un programme non trivial, j'y utilise
le ramasse-miettes conservatif de
Boehm ou bien j'y incorpore un ramasse-miettes comme dans
Qish.
J'ai fortement contribué à lancer les projets
GlobalGCC et OpenGPU pour financer mes travaux sur GCC
Professionnellement, j'ai été l'initiateur du
projet européen
POESIA (Public Opensource Environment for a Safer Internet
Access) IAP-2117, de janvier 2002 à janvier 2004. Voir
poesia-filter.org.
Publications Récentes
Voici quelques papiers ou transparents récents:
- (mars 2010) transparents sur les greffons de GCC (avec
Zbigniew Chamski), Paris, Solutions Linux
- (juillet 2007) GCC summit paper
- (mars 2006) exposé sur méta-connaissances pour
générer des programmes sur le Web [PDF, 17
transparents] (quelques idées sur l'intérêt
d'une approche méta- pour les logiciels du Web -
coté serveur au séminaire en l'honneur de
Jean-Louis Laurière
- (september 2004)
OCamljit - a faster Just-In-Time Ocaml implementation
accepté à MetaOcaml 2004 workshop,
Vancouver, 11 pages (PostScript).
- (spring? 2001 - gzipped PostScript) A Simple
Abstract Interpreter for Threat Detection and Test Case
Generation , Dominique Guilbaud, Eric Goubault, Anne
Pacalet, Basile Starynkévitch and Franck Védrine
presented at WAPATV'01 (associated with ICSE'01, Toronto) [un
papier écrit en anglais à plusieurs sur un
analyseur statique de code à base
d'interprétation abstraite]
- (septembre 2001) Basile Starynkévitch: un regard
extérieur sur le système Maciste de Jacques
Pitrat, in Colloque
Métaconnaissance de Berder (PDF file) [une revue
courte et incomplète du système reflexif à
base de métaconnaissances Maciste de J.Pitrat]
- (janvier 2003) Basile Starynkévitch et Mohamed
Daoudi: Architecture du système Poesia de filtrage de
contenu Internet; fichier PDF in
CORESA
2003 (Lyon)
Contributions logicielles
- La branche MELT de
GCC (et des contributions ã GCC)
- Un petit utilitaire (license GPL) pour dumper ou charger
des fichiers associatifs GDBM en format textuel est gdbmtext.c ici.
- execicar.c est un petit programme
pour lancer d'autres programmes, en dialogant par des
protocoles textuels.
- J'ai écrit manydl.c pour
experimenter dlopen (chargement dynamique de
bibliothèque) et j'ai constaté que sur mon PC
Linux/Debian/Sid/x86 (AMD XP2000 1.66GHz 512Mb RAM) on peut
générer trente mille (oui 30000) fichiers C
(chacun contenant une fonction générée
aléatoirement), les compiler, et les charger tous
à la fois par dlopen. Vous pouvez le compiler
par gcc -rdynamic -O manydl.c -ldl -o manydl puis
lancer l'executable par ./manydl 900 200 pour
générer 900 fichiers nommés
genf_*.c d'environ 200 lignes chacun, les compiler et
les charger dynamiquement ensemble. Vous pouvez même
essayer ./manydl 30000 1000 comme je l'ai fait. Voir
le source pour les détails. Pratiquement, on peut donc
faire beaucoup -des milliers- de dlopen.
- OcamlJitRun (developpé à l'INRIA) a sa
propre
page. C'est un traducteur JIT du code-octet Ocaml vers du
code machine, et ca execute votre programme bytecode Ocaml non
modifié environ deux fois plus vite que
l'interprète ocamlrun habituel.
- Persil (developpé à INRIA) est une bibliothèque
de persistance pour Ocaml
- Qish contient un ramasse miette copieur
générationnel utilisable en C et un embryon de
système à cadres (frames) utilisable comme base
d'implementation de languages ou moteurs d'inférence de
système expert. C'est du logiciel libre sous license GPL
(développé sous Linux/x86). Voici une documentation de Qish en anglais (et
sa version PDF et PostScript) La dernière version de
Qish est référencée comme projet de Freshmeat
et ici. Vous pouvez vous abonner
aux annonces de Qish sur Freshmeat.
- Guis est un petit serveur de widget, vous permettant
d'avoir une interface graphique (pour gtk2) sans linker la
librarie gtk2 dans votre application. Voici une documentation de Guis en anglais (et sa
version PostScript) La dernière
version de Guis est référencée comme
projet de
Freshmeat et ici. Vous pouvez
vous abonner aux annonces de Guis sur Freshmeat.
- J'ai travaillé sur POESIA - un système
(logiciel libre) de filtrage de contenu internet. Les
développeurs en Ocaml peuvent en utiliser (pour ajouter
des traces ou log dans leur code) le fichier
pa_trace.ml pour le préprocesseur camlp4
dans
PoesiaMonIcap; y voir aussi le fichier
README.trace (en anglais)
Comparaison (en anglais) des
temps de compilations de GCC sur 2 ordinateurs de bureau.
Voici une photo de moi prise le 28 septembre 2002:
.
Basile
STARYNKEVITCH (mais ôter _NOSPAM et
.invalid de l'adresse mél).
