Tribune Libre: Ténors de l'Informatique Libre | ||
---|---|---|
Page précédente | Chapitre 4. Le système d'exploitation du projet GNU et le mouvement du logiciel libre | Page suivante |
Peu de temps avant de me lancer dans le projet GNU, j'avais entendu parler du Free University Compiler Kit[1], plus connu sous le nom de VUCK (en hollandais, le mot « free » commence par un V). Ce compilateur avait été mis au point dans l'intention de traiter plusieurs langages, parmi lesquels C et Pascal, et de produire des binaires pour de nombreuses machines cibles. J'ai écrit à son auteur en lui demandant la permission d'utiliser ce compilateur dans le cadre du projet GNU.
Il répondit d'un ton railleur, en déclarant (en anglais) que l'université était « free »[2], mais pas le compilateur. J'ai alors décidé que le premier programme du projet GNU serait un compilateur traitant de plusieurs langages, sur plusieurs plates-formes.
En espérant m'épargner la peine d'écrire tout le compilateur moi-même, j'ai obtenu le code source du compilateur Pastel, qui était un compilateur pour plusieurs plates-formes, développé au laboratoire Lawrence Livermore. Il compilait, et c'était aussi le langage dans lequel il avait été écrit, une version étendue de Pascal, mise au point pour jouer le rôle de langage de programmation système. J'y ai ajouté une interface pour le C, et j'ai entrepris le portage de ce programme sur le Motorola 68000. Mais j'ai dû abandonner quand j'ai découvert que ce compilateur ne fonctionnait qu'avec plusieurs méga-octets d'espace de pile disponibles, alors que le système Unix du 68000 ne gérait que 64 Ko d'espace de pile.
C'est alors que j'ai compris que le compilateur Pastel avait été mis au point de telle manière qu'il analysait le fichier en entrée, en faisait un arbre syntaxique, convertissait cet arbre syntaxique en chaîne d'« instructions », et engendrait ensuite le fichier de sortie, sans jamais libérer le moindre espace mémoire occupé. J'ai alors compris qu'il me faudrait réécrire un nouveau compilateur en partant de zéro. Ce compilateur est maintenant disponible, il s'appelle GCC ; il n'utilise rien du compilateur Pastel, mais j'ai réussi à adapter et à réutiliser l'analyseur syntaxique que j'avais écrit pour le C. Mais tout cela ne s'est produit que quelques années plus tard ; j'ai d'abord travaillé sur GNU Emacs.
[1] | N.d.T. : En anglais, le placement des mots ne permet pas de déterminer s'il s'agit d'un « kit compilateur libre de l'université » ou d'un « kit compilateur de l'université libre ». |
[2] | M. Stallman ne sait pas s'il voulait ici dire « libre » ou « gratuite ». |
Page précédente | Début | Page suivante |
La genèse du projet | Remonter | GNU Emacs |