Geração de Código Intermediário
DE
CÓDIGO INTERMEDIÁRIO
Alunos: Silvia Lins Diego Kasuo Marcus Melo Dael Mango
Geração de Código Intermediário
-Introdução
A geração de código intermediário é a transformação da árvore de derivação em um fragmento de código, que pode ou não ser o código objeto final.
Este assunto mostra como os métodos dirigidos pela sintaxe podem ser usados para traduzir, numa forma intermediária, construções de linguagem de programação, tais como declarações, atribuições e enunciados de fluxo de controle.
Apesar de se poder traduzir o programa-fonte diretamente na linguagem-alvo, alguns dos benefícios em se usar uma forma intermediária independente da máquina são:
- O redirecionamento é facilitado; um compilador para uma máquina diferente pode ser criado a partir dessa representação intermediária.
- Um otimizador de código independente da máquina pode ser aplicado à representação intermediária.
- Simplificação da implementação do compilador, resolvendo gradativamente as dificuldades da tradução.
E algumas das desvantagens são:
-O compilador requer um passo a mais para a tradução, tornando o processo um pouco mais lento.
-A grande diferença entre o código intermediário e o código objeto final é que o intermediário não especifica detalhes da máquina alvo, tais como quais registradores serão usados, quais endereços de memória serão referenciados etc.
1- Linguagens Intermediárias
As árvores sintáticas e a notação pós-fixa são dois tipos de representações intermediárias.
Exemplo: Seja a equação a := (b*c)+(b*c)
Árvore de Sintaxe Grafo de Sintaxe No grafo de sintaxe, se já existe um nó rotulado este é “re-aproveitado”. 1.1 - Código de três Endereços
O código de três endereços é uma seqüência de enunciados da forma geral:
X := Y op Z onde x, y e z são nomes , constantes ou objetos de dados