Kyukyk

4339 palavras 18 páginas
Compiladores
Capítulo 1: Introdução
1. A estrutura global do compilador
Este capítulo pretende apresentar a estrutura geral de um compilador, sem entretanto entrar em detalhes que só podem ser apresentados após uma discussão mais longa, após a apresentação de importantes conceitos e resultados adicionais. Vamos apenas descrever aqui as partes componentes principais de um compilador "típico", e o seu funcionamento simplificado.
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. Como exemplos, um compilador pode analisar cada comando do programa de entrada, e gerar imediatamente o código de saída correspondente a esse comando; alternativamente, o compilador pode esperar o fim da análise de cada unidade de programa (rotina, procedimento, função, ...) para então gerar o código correspondente à unidade. Para melhor aproveitamento de memória durante sua execução, compiladores mais antigos costumavam ser divididos em vários passos, executados em seqüência, freqüentemente de forma aparente para o usuário. Cada passo executa parte do processo de tradução, transformando o código fonte em alguma forma intermediária

Relacionados