Sei sulla pagina 1di 3

TRIPLOS Y CUADRUPLOS

n-tuplas
En la notacin de n-tuplas cada instruccin es una n-tupla.
Tripletas
<operador>, <operando1>, <operando2>
El resultado se asocia al nmero de tripleta
Tripletas indirectas
Son tripletas donde el orden de ejecucin se especifica aparte.
Cudruplas
<operacin>, <operando1>, <operando2>, <resultado>

Tripletas
Tripleta: <operador>, <operando1>, <operando2> el resultado se asocia al nmero de tripleta
Ejemplo: W*X+(Y+Z)
1. *, W, X
2. +, Y, Z
3. +, (1), (2)
Control de flujo:
IF X>Y THEN Z=X ELSE Z=Y+1
1. >, X, Y
2. Saltar si falso, (1), 5
3. =, Z, X
4. Saltar, , 7
5. +, Y, 1
6. =, Z, (5)
7. ...
Problema: La optimizacin supone mover tripletas y hay que recalcular las referencias

Tripletas Indirectas
Tripletas indirectas. Solucionan los problemas de la reordenacin mediante indireccin
Ejemplo:
Fuente:
A=B+C*D/E
F=C*D
Operaciones
1. (1)
2. (2)
3. (3)

Tripletas
(1) *, C, D
(2) /, (1), E
(3) +, B (2)

4. (4)
5. (1)
6. (5)

(4) =, A, (3)
(5) =, F, (1)

Cudruplas
Cudrupla: <operacin>, <operando1>, <operando2>, <resultado>
T1, T2, T3, T4 son variables temporales.
Ejemplo:
(A+B)*(C+D)-E
+, A, B, T1
+, C, D, T2
*, T1, T2, T3
-, T3, E, T4
Las cudruplas facilitan la aplicacin de muchas optimizaciones, pero hay que tener un algoritmo
para la reutilizacin de las variables temporales (reutilizacin de registros del procesador).
Leer una expresin regular en modo posfija, crear el rbol sintctico, describir el cdigo en triplos y
cudruplos.
Expresin Regular
a:=b+c*2+20/5
rbol sintctico
:=

+
20

Triplos:
1) +,b,c
2) *,1),2
3) /,20,5

4) +,2),3)
5) :=,a,4)

Cudruplos

1) +,b,c,T1
2) *,2,T1,T2
3) /,20,5,T3

4) +,T2,T3,T4
5) :=,a,T4,T5

Potrebbero piacerti anche