Page suivante Page précédente Table des matières

7. Les premiers pas

Peu de temps avant de me lancer dans le projet GNU, j'avais entendu parler du Free University Compiler Kit

NdT : En anglais, le placement des mots ne permet pas de déterminer s'il s'agit d'un « kit compilateur libre de l'université (libre) » ou d'un « kit compilateur de l'université libre ».
, 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 proposer 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 que l'université était libre, 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 proposant 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 réclamait plusieurs méga-octets d'espace de pile, alors que le système Unix disponible sur le 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 dans le but d'analyser le fichier proposé en entrée, d'en faire un arbre syntaxique, de convertir cet arbre syntaxique en chaîne d'« instructions », et d'engendrer ensuite le fichier de sortie, sans jamais libérer le moindre espace mémoire occupé. C'est à ce moment-là que j'ai 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'interface que j'avais écrite pour le C. Mais tout cela ne s'est produit que quelques années plus tard ; j'ai commencé par travailler sur GNU Emacs.


Page suivante Page précédente Table des matières