Tema 6: Generación de código (ejemplo arrays) Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 6: Generación de código (ejemplo arrays) 1/3 Tablas de símbolos y tipos int main() { int i,j,a[4][3]; int c; float ff; ... } Procesamiento de Lenguajes N OMBRE T IPO P OSICIÓN . . . i 1 0 ... j 1 1 ... a 3 2 ... c 1 14 ... ff 2 15 ... T IPO TAMAÑO T IPO B ASE 1 ENTERO 2 REAL 3 ARRAY 3 1 4 ARRAY 4 3 Tema 6: Generación de código (ejemplo arrays) 2/3 Generación de código para c = a[2][1]; a[0] a[1] a[2] 7 5 2 dir (a) = 2 dir (c) = 14 t1 t2 t3 t4 := := := := 0 t1 × 4 + 2 t2 × 3 + 1 t3 + 2 Procesamiento de Lenguajes 5 8 a[3] 8 11 12 13 mov #0 16000 ; t1 = 0 (de c = mov #0 16001 ; t1 = 0 (de a[ mov #2 16002 ; el 2 de [ 2 ] mov 16001 A muli #4 addi 16002 mov A 16003 ; t2 = t1 * 4 + 2 mov #1 16004 ; el 1 de [ 1 ] mov 16003 A muli #3 addi 16004 mov A 16005 ; t3 = t2 * 3 + 1 mov 16005 A addi #2 ; t4 = t3 + dir(a)=2 mov @A 16006 mov 16000 A addi #14 ; t1(c) + dir(c) mov 16006 @A ; c = a[2][1] Tema 6: Generación de código (ejemplo arrays) 3/3