Fabien ROPARS
2007-07-09 21:50:23 UTC
Comme d'autres avant moi, j'ai cherché à me renseigner sur la manière
dont était implémenté le code-octet intermédiaire d'OCaml, celui qui
peut ensuite être interprété par la machine ZINC.
Malheureusement, il semble bien que personne à l'INRIA n'ait pris le
temps de rédiger l'indispensable document de référence concernant ce
sujet si l'on en croit ce que j'ai pu lire sur les archives du forum
anglophone :
http://groups.google.com/group/fa.caml/browse_thread/thread/a009fce93900a982/999a1417b836009b?lnk=gst&rnum=5#999a1417b836009b
Les seules sources d'informations disponibles sembles être :
- Ce papier écrit par Xavier LEROY, assez ancien (1990) et très généraliste:
http://gallium.inria.fr/~xleroy/publi/ZINC.pdf
- Celui-ci, toujours de Xavier LEROY, mais bien plus récent et plus
détaillé concernant la ZAM2, spécifique à OCaml :
http://pauillac.inria.fr/~xleroy/talks/zam-kazam05.pdf
Ces deux documents très théoriques nous font voyager dans le monde
merveilleux du lambda-calcul et de la notation de de Bruijn, et se
révèlent totalement incompréhensibles pour qui n'est pas familier avec
ces notions (ce qui est mon cas).
- Enfin, ceci, qui aurait pu être la perfection absolue s'il avait été
terminé :
http://pauillac.inria.fr/~lebotlan/docaml_html/french/index.html
Mais les rédacteurs ont apparemment laissé tomber leur beau projet
depuis plusieurs années déjà, la dernière mise à jour datant de 2001 !
Devant ce constat, j'ai décidé de tenter de réaliser moi-même ce travail
en "décryptant" le code source d'OCaml.
Je ne suis pas du tout sûr de pouvoir y arriver, car ce travail n'est
pas du tout facile, d'autant plus que mon C, qui n'a jamais été très bon
(je suis totalement autodidacte) est plutôt rouillé.
Pour le moment, j'ai dégrossi le travail sur les 36 premières
instructions (sur 146 au total).
Voici donc mes questions :
Connaissez-vous d'autres documents susceptibles de m'aider dans cette
tâche ?
Auriez-vous déjà commencé un travail similaire de votre côté ?
Seriez-vous intéressé par une participation à ce projet ?
Voilà, désolé d'avoir été si long.
Fabien.
dont était implémenté le code-octet intermédiaire d'OCaml, celui qui
peut ensuite être interprété par la machine ZINC.
Malheureusement, il semble bien que personne à l'INRIA n'ait pris le
temps de rédiger l'indispensable document de référence concernant ce
sujet si l'on en croit ce que j'ai pu lire sur les archives du forum
anglophone :
http://groups.google.com/group/fa.caml/browse_thread/thread/a009fce93900a982/999a1417b836009b?lnk=gst&rnum=5#999a1417b836009b
Les seules sources d'informations disponibles sembles être :
- Ce papier écrit par Xavier LEROY, assez ancien (1990) et très généraliste:
http://gallium.inria.fr/~xleroy/publi/ZINC.pdf
- Celui-ci, toujours de Xavier LEROY, mais bien plus récent et plus
détaillé concernant la ZAM2, spécifique à OCaml :
http://pauillac.inria.fr/~xleroy/talks/zam-kazam05.pdf
Ces deux documents très théoriques nous font voyager dans le monde
merveilleux du lambda-calcul et de la notation de de Bruijn, et se
révèlent totalement incompréhensibles pour qui n'est pas familier avec
ces notions (ce qui est mon cas).
- Enfin, ceci, qui aurait pu être la perfection absolue s'il avait été
terminé :
http://pauillac.inria.fr/~lebotlan/docaml_html/french/index.html
Mais les rédacteurs ont apparemment laissé tomber leur beau projet
depuis plusieurs années déjà, la dernière mise à jour datant de 2001 !
Devant ce constat, j'ai décidé de tenter de réaliser moi-même ce travail
en "décryptant" le code source d'OCaml.
Je ne suis pas du tout sûr de pouvoir y arriver, car ce travail n'est
pas du tout facile, d'autant plus que mon C, qui n'a jamais été très bon
(je suis totalement autodidacte) est plutôt rouillé.
Pour le moment, j'ai dégrossi le travail sur les 36 premières
instructions (sur 146 au total).
Voici donc mes questions :
Connaissez-vous d'autres documents susceptibles de m'aider dans cette
tâche ?
Auriez-vous déjà commencé un travail similaire de votre côté ?
Seriez-vous intéressé par une participation à ce projet ?
Voilà, désolé d'avoir été si long.
Fabien.