[2.7] Compiladores (cont.)
Áreas de Armazenamento no Programa:
- Stack: variáveis locais; endereçado relativo ao SP
- Global data area: variáveis globais, estáticas
- Heap: variáveis alocadas dinamicamente (c/ponteiros)
Exemplo de Problemas do Compilador:
- Em geral, alocar variáveis em registros é melhor.
- Número alto de registros facilita a alocação. Mas...
- Variáveis acessadas por ponteiros criam problemas!
Ex: p = &a
a = ...
*p = ... ? Erro se a estiver em registro!
...
... = a ? Erro se p foi increm/decrem