Corrigé - Zegour

reçoit les résultats des compilations d'évaluations par le biais d'un bilan annuel
inséré dans le rapport annuel;. peut demander au personnel de porter un ...

Part of the document


Corrigé Examen compilation 0910 Ci-après quelques éléments de réponse : Vérification des parenthèses
La grammaire est la suivante
E ::= Cx | Cy ( E ) Cz
C := caractère quelconque différent de '(' et ')'.
X, y et z des entiers Grammaire d'attribut
Une grammaire d'attribut est composée de 3 parties
- Productions en EBNF (en noir)
- Attributs qui sont les paramètres des non terminaux (en bleu)
- Actions sémantiques (en rouge) Dec
=
Li ( Une_liste )
[Sep(Un_separateur) Typ (Un_type) : Pour chaque élément de la liste
Une_liste
- le rajouter dans la table des symboles
S'il n'existe pas dejà sinon erreur
- lui attribuant le type Un type
- Lui attribuer une adresse relative
Li (Une_Liste)
=
idf Creer la liste Une_liste avec idf comme premier element
{ ,
idf Ajouter Idf à la liste Une_liste
} Sep (Un separateur)
=
: | Un_separateur = ' :'
un | Un_separateur = 'un'
une | Un_separateur = 'un'
des | Un_separateur = 'des'
Typ (Un_type)
=
entier | Un_type := 'Entier'
Boolean | Un_type := 'Entier' Synthèse
Contenu des tables :
Quadruplets= De, 0,
De, 1
De, 2
Lire, 0, 2
+E, 0, 2, 3
Aff, 1, , 3
+E, 0, 2, 4
Ecrire, 2, 6
Ecrire,8, 1
Constantes=
0 : La somme de
1 : et
2 : est
Objets=
0: L, E,, 0
1: L, E,, 1
2: L, E,, 2
3: X, E,, 3
4: X, E,, 4
5: L, C,, 0
6: L, C,, 1
7: L, C,, 2 Complement=
0 : 0
1 : 2
2 : 5
3 : 0
4 : 6
5 : 1
6 : 7
7 : 4
8 : 1 Longueur Zdd = 5