IF688 - Teoria e Implementação de Linguagens Computacionais
Ambientes de Execução - Heap | Geração de Código
Objetivo
O objetivo desta aula é apresentar o conceito de representação do programa em tempo de execução na memória, com foco especial na heap e em mecanismos de garbage collection. Ademais, apresentar a fase de geração de código, com foco especial na etapa de seleção de instruções e como o processo de alocação de registradores pode se beneficiar do contexto de blocos básicos.
Questões para Discussão
- Que tipo de objeto é armazenado na heap?
- Quais são as tarefas de um memory manager e propriedades desejadas?
- Que estratégias podemos utilizar para reduzir fragmentação?
- Quais são os erros e problemas normalmente associados ao gerenciamento manual de memória?
- Quais são os principais requisitos e propriedades de um gerenciador automático de memória?
- Como encontrar objetos inalcançáveis?
- Quais são as principais estratégias para garbage collection?
- Como gerar código a partir de templates baseados em código de 3 endereços?
- Como o processo de geração se beneficia de contexto?
- Em que consistem register e address descriptors e de que forma estes podem auxiliar na geração de código?
- Quais são as diretrizes para escolha de registradores neste contexto?
- Como os descriptors são alterados na medida que o código é gerado?
Material usado em sala de aula
Links Relacionados