Entretien avec Tristan Gingold, auteur de GHDL

Le vendredi 21 mars 2003.
Tristan Gingold est l’auteur de GHDL, un compilateur VHDL disponible sous forme de logiciel libre. Tristan a accepté de répondre à quelques questions et ainsi d’inaugurer cette nouvelle rubrique du site de l’association Ada-France.


-  Bonjour Tristan. Tu es, entre autres, l’auteur de GHDL, un compilateur VHDL écrit en Ada. Peux-tu nous expliquer en quoi cela consiste ?

VHDL signifie « Very high-speed integrated circuit Hardware Description Language ». Comme son nom l’indique, c’est un langage dédié à la description matérielle de circuits intégrés. VHDL est très utilisé pour la conception de circuits, surtout en Europe. Pour plus d’informations, vous pouvez regarder les nombreuses pages sur le WEB (NdlR : voir la section « liens » à la fin de l’article).

La première version du standard VHDL (IEEE 1076) est sortie en 1987, et s’inspire très fortement de la syntaxe et de la sémantique d’Ada.

-  Ton compilateur vient se greffer sur le générateur de code de GCC (GNU Compiler Collections). Pourquoi ne pas l’avoir développé de manière totalement autonome ?

Mes premières versions étaient autonomes : il s’agissait en fait d’un interpréteur. Mais hélas, la vitesse d’éxécution est très limitée par cette technique. J’ai donc choisi de changer de technique et de compiler le code VHDL. Plutôt que de réécrire un compilateur, j’ai choisi de m’interfacer avec GCC.

-  Pourquoi avoir choisi Ada 95 pour développer cette partie frontale ? Ce choix s’est-il avéré judicieux ?

Il y a plusieurs réponses. Tout d’abord, il aurait été préférable de réaliser cette partie en VHDL, mais hélas, VHDL n’est pas bien adapté pour écrire des compilateurs ou des outils systèmes. Se posait également le problème du « bootstrap » (comment compiler ce premier compilateur ?).

Je n’ai pas hésité entre Ada95 et un autre langage. En effet, je voulais apprendre Ada95 et pour cela un projet est idéal. De plus, je ne connaissais pas très bien VHDL. Or, VHDL est très inspiré d’Ada, si bien qu’en utilisant et en apprenant Ada, j’approfondirais mes connaissances en VHDL.

De plus, Ada est un langage conçu et adapté aux gros projets. Et un compilateur n’est pas un petit projet.

Enfin, Ada est un langage « pensé » et cohérent ; on apprend beaucoup en programmant en Ada.

-  La partie de GCC permettant de générer du code est écrite en C. As-tu rencontré des difficultés pour t’interfacer avec ce module ?

Effectivement, GCC est en C alors que le reste de GHDL est en Ada95. En fait, j’ai écrit un « binding » pour les fonctionnalités de GCC utilisées par le frontal. Ce « binding », que j’appelle AGCC (A comme Ada), consiste en un petit nombre de paquetages déclarants des fonctions ou des procedures de GCC. Il ne donne pas accès directement aux structures de données, tout doit passer par des sous-programmes. C’est un peu plus lent mais cela facilite l’écriture et la mise à jour du « binding ».

Pour ceux qui ne connaissent pas bien Ada95, il faut savoir qu’il comporte des fonctionnalités pour s’interfacer aisément avec d’autres langages.

-  As-tu eu des retours d’expérience sur GHDL ? Sur AGCC ?

Je ne crois pas qu’AGCC soit utilisé dans d’autres projets.

Les utilisateurs jugent GHDL assez avancé car il compile quasiment tous leurs projets. Par contre il y a très peu de contribution, car VHDL est un langage pour éléctroniciens, qui ne sont pas toujours des informaticiens. Ceci ne semble pas étonnant.

Enfin, il est sûr que le fait qu’il soit en Ada95 ne favorise pas les contributions, car ce langage n’est, hélas, pas très populaire.

Tristan, merci. J’espère que ton projet fera des émules et que nous verrons fleurir beaucoup d’autres programmes écrits en Ada 95.


Liens :
-  GHDL
-  GCC (GNU Compilers Collection)
-  Association Ada-France
-  Liens VHDL



Forum de l'article