COMPILADORES

757 palavras 4 páginas
OTIMIZAÇÃO DE CÓDIGO
A fase de otimização tenta melhorar o código intermediário, de forma que venha resultar um código de máquina mais rápido em tempo de execução. Existem otimizações das mais básicas até as mais complexas. A representação intermediária é gerada de forma que obtenha a mesma saída do código fonte, entretanto, às vezes, o código gerado pode ser muito mais eficiente através da eliminação de alguns comandos desnecessários. O objetivo da etapa de otimização de código é aplicar um conjunto de técnicas para detectar tais seqüências e substituí-las por outras que removam as situações de ineficiência.
As técnicas de otimização podem ser classificadas como independentes de máquina, quando podem ser aplicadas antes da geração do código na linguagem assembly, ou dependentes de máquina, quando aplicadas na geração do código assembly. A segunda propriedade não menos importante que a primeira, determina que uma transformação precisa acelerar os programas por um fator mensurável. Ocasionalmente uma otimização pode retardar ligeiramente um programa, à medida que a mesma pode vir a melhorar o estado da execução.

GERAÇÃO DE CÓDIGO INTERMEDIÁRIO
É um programa para máquina abstrata, que pode ter várias formas, devendo ter dois aspectos importantes: ser fácil de produzir e fácil de traduzir no programa alvo. A linguagem utilizada para a geração de um código em formato intermediário entre a linguagem de alto nível e a linguagem assembly deve representar todas as expressões do programa original, de forma independente do processador para o qual o programa será gerado.
Os compiladores não trabalham diretamente com o código de um processador específico. Normalmente o código gerado nessa fase é expresso em alguma linguagem intermediária, próxima do assembly, mas independente de processador.

TABELA DE SIMBOLOS
Uma tabela de símbolos é uma estrutura de dados interna a um compilador, que irá ser usada intensivamente nas outras etapas. Por ora,

Relacionados