[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Probleme de transfert MENTOR --> CENTAUR



DESCRIPTION D'UN PROBLEME RENCONTRE LORS DU TRANSFERT DE MENTOR VERS CENTAUR
DE L'ENVIRONNEMENT DE DEVELOPPEMENT DU COMPILATEUR DU LANGAGE SIGNAL

1) Description de ce qui est fait avec MENTOR
(on ne decrit ici que la partie qui pose probleme pour le transfert vers CENTAUR)

 - Le langage SIGNAL est decrit en METAL
 - Cette description, SIGNAL.met, est compilee :
   le compilateur METAL genere notamment un fichier SIGNACODE.t;
   celui-ci decrit une table (liste d'entiers)
   contenant un codage de la suite d'actions a effectuer
   pour la construction d'arbre associee a chacune des regles de grammaire
   (les entiers representent des actions et des operateurs).
 - Nous avons un module C (treebuild.c) qui contient la definition de la
   procedure action(n) appelee par l'analyseur syntaxique.
   Cette procedure interprete le morcesu de la table SIGNACODE.t
   (prealablement chargee en memoire) qui concerne l'action n
   (grosso modo, iteration sur un case et appel des bonnes fonctions
   de construction d'arbre et gestion de la pile).
 - Nous avons notre propre module de construction d'arbres
   (appele par treebuild.c).
   Nous ne souhaitions pas en effet nous lier au module de construction
   d'arbres de MENTOR (notamment pour pouvoir diffuser sans probleme
   le compilateur SIGNAL).

2) Avec CENTAUR

 - Le compilateur METAL genere notamment un fichier SIGNAL_code.ll
   qui est un peu l'equivalent du SIGNACODE.t de MENTOR,
   sauf qu'il ne s'agit pas d'une table qu'on pourrait interpreter
   en appelant nos fonctions de construction d'arbre
   (comme on le faisait avec MENTOR),
   mais directement d'appels de fonctions LISP dont on ne sait pas quoi faire...


CONTEXTE ET RESUME DU PROBLEME :

L'environnement de developpement du compilateur du langage SIGNAL
a ete developpe sous MENTOR.
Pour des raisons evidentes, nous souhaitons faire le transfert vers CENTAUR.

ATTENTION, cela ne signifie pas que le langage SIGNAL DOIVE etre disponible
sous CENTAUR (bien qu'il puisse l'etre aussi pour nous).
En effet, on veut pouvoir diffuser SIGNAL independamment de CENTAUR,
comme on le diffuse independamment de MENTOR.
En particulier, on dispose d'un gestionnaire d'arbres.

Dans ce cadre, MENTOR est donc actuellement utilise :
- d'une part pour generer l'analyseur syntaxique - constructeur d'arbre
  abstrait de SIGNAL (tel que decrit plus haut),
- d'autre part pour developper les modules PASCAL du compilateur SIGNAL
  (qui travaille sur la representation abstraite des programmes).

PROBLEME : Si on voit bien comment obtenir l'equivalent du deuxieme point
avec CENTAUR, on ne voit pas du tout comment avoir l'equivalent du premier point.


|---------------------------------------------------------------------------|
|Thierry Gautier                                    E-mail: gautier@irisa.fr|
|IRISA / INRIA                                      Phone: +33 99 84 72 41  |
|Campus de Beaulieu                                 Fax: +33 99 38 38 32    |
|F-35042 RENNES CEDEX - FRANCE                      Telex: UNIRISA 950 473F |
|---------------------------------------------------------------------------|