ExProvAnt2

De DCA-Wiki

Exercícios em provas sobre análise semântica, geração e otimização de código, carregadores e ligadores

1. Dada a expressão x = (a+b+c)*(b+c)+d,

a. reescreva-a usando código intermediário de três endereços;
b. reescreva-a usando notação pósfixa;
c. a expressão é passível de otimização? Se sim, indique as possibilidades.

2. Para o seguinte fragmento de código C, com as variáveis do tipoint(quatro bytes):

for (i = 0; i < 100; ++i) {
   eps = 0.001;
   if (a[i] != 0)
      c[i] = b[i] / a[i];
   else
      c[i] = eps;
}
a. Apresente o código em formato intermediário de três endereços, sem otimização.
b. Otimize o código em formato intermediário, indicando claramente quais foram as estratégias utilizadas.

3. Para a expressão C a seguir, para as quais todas as variáveis são do tipo inteiro de quatro bytes:

r = a * b + pow(c,2);
a. Escreva o bloco de instruções em código intermediário de três endereços.
b. Otimize o bloco produzido no item anterior. Indique que técnicas de otimização foram utilizadas.
c. Apresente a representação do código otimizado em notação de quádruplas.
d. Repita o item anterior usando a notação de triplas.

4. O que é a decoração de nomes e para que é utilizada?

5. No que consiste a movimentação de código?

6. Em que etapa da compilação a verificação de tipos é realizada?

7. Por qual motivo o processo de montagem é realizado usualmente em duas etapas?

8. Em que diferem os dois esquemas de ligação dinâmica?

9. Seja o código abaixo produzido por um montador já instalado em memória. A partir dos registros de relocação e ligação (tipo 2) e a tabela de símbolos, faça os ajustes de ligação e relocação no código em memória.

Mapa memória:

Endereço\x 0	2	4	6	8	A	C	E
100x	 3039	2022	42C8	293E	4045	0100	0200	0000
101x	 D791	3246	3039	01A0	27D8	7591	3911	2708
102x	 2039	4EBF	2200	0000	2200	0000	9081	4E75

GEST:

Símbolo	Valor
W	20A0
Y	1000
Z	1210

Registros de relocação e ligação [formato: tipo.endereço relativo.dimensão.base]:

...
2.000C.02.'Z'
2.0014.04.'Y'
2.0028.04.'W'
...
Ferramentas pessoais