APRES L'ANALYSE SYNTAXIQUE APRES L'ANALYSE SYNTAXIQUE

ATTRIBUTS (SYNTHETISES)
Une méthode très utile pour spécifier les propriétés non-algébriques des programmes et leur traduction.

EXEMPLES

ATTRIBUTS HERITES
Un nouveau type d'attribut où la valeur dépend de la valeur du père (et peut-être des frères).

EXEMPLES

TYPES DES EXPRESSIONS
Donc une question intéressante: dans un ensemble d'attributs interdépendants, comment décider le bon ordre d'évaluation
(s'il y en a!)

YACC/BISON
Yacc/Bison permet d'utiliser des attributs d'une façon très restreinte:
chaque noeud peut avoir un seul attribut et il doit être synthétisé!
dans les règles, l'attribut du symbole à gauche s'appelle $$ et ceux des symboles à droite s'appellent $1, $2 etc.
pour avoir plusieurs attributs synthétisés il suffit de déclarer des types union
pour avoir des attributs hérités, il faut écrire du code C qui gère une pile (des attributs de tous les noeuds sur le chemin de la racine);
le programmeur doit décider l'ordre de calcul des attributs;
et ça doit être un ordre qui correspond à un parcours classique de l'arbre, donc, par exemple un sous-arbre ne peut rien hériter d'un oncle droit.

Eli/LIDO
Un système qui permet d'écrire des règles de calcul pour les attributs synthétisés et hérités dans une syntaxe restreinte de type C (l'expression calculée pour la valeur d'un attribut doit être l'appel d'une fonction avec des paramètres simples);
Le système décide l'ordre de calcul des attributs;
...


File translated from TEX by TTH, version 3.05.
On 3 Feb 2003, 09:49.