chapitre3
Chapitre III : Les Formes Intermédiaires
I. Analyse
Analyse syntaxique : génère deux textes :
Dictionnaire : rassemblement des déclarations des objets manipulés par le programme source.
Texte intermédiaire : instructions du programme source.
Forme intermédiaire : ensemble d'instructions élémentaires.
Instruction élémentaire : composée d'un opérateur et de deux opérandes.
Opérande : peut être une constante, une variable ou un nom de procédure.
Opérateur : peut être arithmétique ou logique.
II. Types de Formes Intermédiaires
Différentes formes intermédiaires :
Forme post-fixée
Forme préfixée
Arbre abstrait
Quadruplés
Triplés directs et indirects
III. Forme Post-Fixée
1. Notation
Notation :
opérande opérande opérateurExemple de notation et évaluation :
fp(t1 opérateur t2) = fp(t1) fp(t2) opérateurfp(opérateur t) = fp(t) opérateurfp(constante) = constantefp(variable simple) = variable simple
2. Évaluation
Utilisation d'une pile pour sauvegarder les opérandes :
Processus :
Si
tcest un opérande, empilert1Si
tcest un opérateur binaire, dépiler deux opérandes, les évaluer et empiler le résultat.Si
tcest un opérateur unitaire, dépiler un opérande, l'évaluer et empiler le résultat.
Exemple :
Expression :
a-c+d*eProcessus d'évaluation avec la pile.
3. Affectation en Post-Fixée
Notation d'affectation :
Var := <expression>Forme post-fixée :
fp : fp(Var) fp(<expression>) :=
4. Branchement Inconditionnel
Notation :
Goto etiqForme post-fixée :
BRL opérandeoù opérande est une position dans la chaîne post-fixée.
5. Branchement Conditionnel
Notation :
opérande1 opérande2opérateur de comparaison par rapport à zéro.Opérateurs : BZ(=0), BNZ(≠0), BP(>0), BPZ(>=0), BM(<0), BMZ(<=0).
6. Déclaration de Tableau
Forme :
Array V[U1:L1,…, Un:Ln]Borne : expressions arithmétiques de type entier.
Forme post-fixée :
fp : fp(U1) fp(L1)... fp(Un) fp(Ln).
IV. Forme Préfixée
Notation :
opérateur opérande opérande.
V. Les Quadruplés
Forme générale :
(opérateur, opérande1, opérande2, Temporaire)Exemple d'expressions :
a*b/c+ddécomposé en quadruplés.Optimisation nécessaire pour mémoire.
1. Affectation
Notation :
Var := <expression>en quadruplés.
2. Branchement Inconditionnel
Notation :
Goto etiqen quadruplés.
3. Branchement Conditionnel
Comparaison de deux opérandes.
4. Déclaration de Tableau
Notation :
Array[U1:L1,…, Un:Ln]en quadruplés.
VI. Arbre Abstrait
Représentation arborescente utilisée en compilation.
Représente l'arbre syntaxique de manière abstraite.
Exemples d'affectation, de branchements et d'instructions conditionnelles.
VII. Conclusion
Remarque sur la mémoire :
La méthode des triplés conçue pour optimiser le stockage des temporaires.