Compiladores: PASCALjr - WWW2 - Udesc
Compiladores: PASCALjr - WWW2 - Udesc
Compiladores: PASCALjr - WWW2 - Udesc
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Código IntermediárioT1 = a+bT2 = c+dT3 = e-T2T4 = T1-T3T2 = c+dT3 = e-T2T1 = a+bT4 = T1-T3Código ObjetoMOV a, R0ADD b, R0MOV c, R1ADD d, R1MOV, R0, T1MOV E, R0SUB R1, R0MOV T1, R1SUB R0, R1MOV R1, T4MOV c, R0ADD d, R0MOV e, R1SUB R0, R1MOV a, R0ADD b, R0SUB R1, R0MOV R0, T47.2.1 Algoritmo para Construir o GAD de um blocoO algoritmo supõe que cada instrução (de três-endereços) segue um dos seguintes trêsformatos: (1) x = y op z; (2) x = op y; (3) x = y. Instruções if-goto são tratadas como ocaso (1).Passos:1. Se o nó y ainda não existe no grafo, crie uma folha para y (e para z se for o caso 1);2. No caso 1, verifique se existe um nó op com filhos y e z (nessa ordem). Se sim,chame-o, também de x; senão, crie um nó op com nome x e dois arcos dirigidos donó op para y e z. No caso 2, verifique se existe um nó op com um único filho y. Senão existir, cria tal nó e um arco para y; chame de x o nó criado ou encontrado. Nocaso 3, chame também de x o nó y.Exemplo: y = ((a+b)*(a-b))+((a+b)*(a-c))T1 = a+bT2 = a-bT3 = T1*T2T4 = a+bT5 = a-cT6 = T4*T5T7 = T3+T6y = T769