Académique Documents
Professionnel Documents
Culture Documents
( :=, T, , Var)
III.3.2 Branchement inconditionnel (to label) :
Goto etiq (BRL, etiq, , )
(BR, N°quadruplé, , )
III.3.3 Branchement conditionnel :
(BZ[BNZ, BM, BMZ, BP, BPZ], N°quadruplé, Temporaire, )
Dans cette forme, il existe des opérateurs binaires : comparaison de deux opérandes :
(BE[BNE, BL, BLE, BG, BGE], N°quadruplé, T1, T2)
III.3.4 Déclaration de tableau :
Array[U1:L1,……Un:Ln]
.
.
.
(BZ, else, T, )
Quadruplés de <inst1>
(BR, FIN, , )
Quadruplés de <inst2>
Exemple :
1- (BE, else, a, b)
2- (*, b, a, T1)
3- ( :=, T1, , b)
4- (BR, Fin, , )
5- (*, a, c, T2) else
6- ( :=, T2, , c)
7- Fin
Conclusion :
On remarque qu’avec cette méthode, on perd beaucoup de place mémoire : Stockage des
temporaires. Pour cela, il a été conçu une autre forme intermédiaire : Triplés.
III.4 Arbre abstrait :
Une des formes intermédiaires la plus utilisée en compilation est la représentation arborescente.
Celle-ci a l’avantage de représenter l’arbre syntaxique, déduit de l’analyse syntaxique, de manière
abstraite, les non-terminaux de la grammaire sont supprimés, on ne conserve que les relations entre
opérateurs et opérandes.
Exemple : i*i+i
+
* i
i i
III.4.1 Affectation :
:=
Variable <expression>
III.4.2 Branchement inconditionnel :
Goto etiq BRL
etiq
III.4.3 Instruction IF <cond> THEN <inst1> ELSE <inst2> :
IF
A U1 L1 …………………. Un Ln
III.4.6 Référence à un élément de tableau :
A [<exp1>, ………., <expn>]
SUBS
Exemple :
Begin
Integer i, j, k;
Label etiq;
K := 0;
ELSE Begin
i := i+1;
Goto etiq;
End ;
End.