Você está na página 1de 2

COMPILADORES

LISTA 01 – TRADUÇÃO DE LINGUAGENS DE PROGRAMAÇÃO

Data de entrega: 02/03/2011.

Exercício 1.
No contexto de implementação de linguagens de programação, dê o significado dos
seguintes termos: compilador, interpretador, montador e pré-compilador.

Antes de um programa ser executado, este deve primeiro ser traduzido de uma forma que possa
ser executado por um computador. O compilador é responsável por essa tradução.

Um interpretador é outro tipo comum de processador de linguagem. Ao invés de produzir m


programa alvo como tradução, um interpretador aparece para diretamente executar operações
especificadas no programa fonte com dados de entrada fornecida pelo usuário.

Na fase de pré-compilação, o programa fonte é lido e caso se ncontre comandos do pré-


compilador, eles serão processados. O pré-compilador é responsável por gerar códigos
intermediário que serão lidos pelo compilador.

Um montador traduz um arquivo de instrução em assembly para um arquivo de instrução de


máquina binárias e dados binários.

Exercício 2.
Aponte as vantagens e desvantagens dos interpretadores em relação aos
compiladores.

As vantagens dos compiladores são:


Execução do programa mais rápida
Estruturas de dados mais completa
Permitem otimização do código fonte
As desvantagems são:
Várias etapas de traduução
Processo de correção de erro e depuração mais demorada
Programação final maior, gerando necessidade de mais memória

As vantagens do interpretador são:


Depuração Simples
Consomem menos memória
Resultado imediato do programa
As desvantagems são:
Execução do programa mais lenta
Estruturas de dados muito simples
Necessidade de fornecer o programa fonte para o usuário

Exercício 3.
Explique o processo de compilação: fases e seu inter-relacionamento.
Fases do processo de compilação

Análise Léxica (scanner)


A principal função do analisador léxico é de fragmentar o programa fonte em
componentes básicos chamados tokens.

Análise Sintática (parser)


O analisador sintático obtém uma cadeia de tokens, provenientes do analisador léxico e
verifica se a mesma pode ser gerada pela gramática da linguagem fonte.

Análise Semântica
A análise semantica cria, a partir do texto fonte, uma interpretação desse texto, expressa
em alguma notação adequada geralmente uma linguagem intermediária do compilador.

Otimização
A fase de otimização tenta melhorar o código intermediário, de forma que venha resultar
em um código de máquina mais rápido em um tempo de executação.

Geração de código
A fase final do compilador é a geração do código alvo, consistindo normalmente em
código de máquina ou código de montagem. As localização da memória são selecionadas para
cada uma das variáveis usadas pelo programa e as instruções intermediárias são traduzidas em
uma sequência de instrução de máquina que realizam a tarefa.

Exercício 4.
Qual o significado de “passo” no processo de compilação? Quais as vantagens e
desvantagens de implementar um compilador de vários passos

Pode se entender por passo, o número de vezes que o compilador varre o código.

A principal vantagem de se implementar um compilador de vários passos é a modularização


alcançada no projeto e na implementação dos processos que constituem o compilador. A
principal desvantagem é o aumento do projeto total, com a necessidade de instrodução das
linguagens intermediárias.