Trabalho si
Um compilador é um programa que lê um programa escrito em uma linguagem, que é a linguagem fonte, e o traduz em um programa equivalente em outra linguagem, que é a linguagem alvo. Uma parte importante do processo é a que o compilador relata ao usuário a presença de erros no programa fonte.
Existem milhares de linguagens fonte, desde as linguagens tradicionais como Fortran e Pascal, até as linguagens especializadas. As linguagens alvo são igualmente variadas, pois uma linguagem alvo pode ser uma outra linguagem de programação, ou a linguagem de máquina de qualquer coisa entre um microprocessador e um supercomputador.
Os compiladores são algumas vezes classificados como: de uma passagem, de passagem múltipla, de carregar e executar, depuradores ou otimizantes, dependendo de como tenham sido construídos ou que função se suponha que devam realizar.
A despeito dessa aparente complexidade, as tarefas básicas que qualquer compilador precisa realizar são essencialmente as mesmas.
O Contexto de um Compilador
O nome compilador, criado nos anos 50, faz referência ao processo de composição de um programa pela reunião de várias rotinas de biblioteca; o processo de tradução (de uma linguagem fonte para uma linguagem objeto), considerado hoje a função central de um compilador, era então conhecido como programação automática.
Nesse processo de tradução, há duas tarefas básicas a serem executadas por um compilador:
• Análise, em que o texto de entrada (na linguagem fonte) é examinado, verificado e compreendido
• Síntese, ou geração de código, em que o texto de saída (na linguagem objeto) é gerado, de forma a corresponder ao texto de entrada.
Normalmente, pensamos nessas tarefas como fases do processo de compilação, mas não é absolutamente necessário que a análise de todo o programa seja completada antes que o primeiro trecho de código objeto seja gerado: essas duas fases podem ser intercaladas.
Na compilação a análise consiste em três fases:
•