Zusammenfassung der Ressource
linguagem
alto nivel
- tradutores
- compiladores
- traduz de uma vez só todo o programa
escrito em linguagem de alto nível
(código-fonte) para um programa
equivalente escrito em linguagem de
máquina (código-objeto)
- interpretadores
- traduz (sem gerar código-objeto)
e em seguida executa,
uma-a-uma, as instruções de um
programa em linguagem de alto
nível (código-fonte)
- montador
- (ou Assembler): faz a tradução direta das
instruções Assembly para um programa
equivalente escrito em linguagem de
máquina
- Analise Sintática
- Análise Léxica (scanner)
- Ele separa a sequência de caracteres que
representa o programa fonte em entidades ou
tokens, símbolos básicos da linguagem.
- Durante a análise léxica, os tokens
são classificados como palavras
reservadas, identificadores,
símbolos especiais, constantes de
tipos básicos (inteiro real, literal,
etc.)
- Outras funções atribuídas ao analisador
léxico são: ignorar espaços em branco e
comentários, e detectar erros léxicos.
- Ele agrupa os tokens fornecidos
pelo analisador léxico em
estruturas sintáticas,
construindo a árvore sintática
- O analisador sintático tem também por
tarefa o reconhecimento de erros
sintáticos, que são construções do
programa fonte
- Identifica a estrutura gramatical do
programa e reconhece o papel de cada
componente
- Analise Semântica
- O compilador executa ainda a
análise semântica
- Fundamentalmente, a análise semântica trata
os aspectos sensíveis ao contexto da sintaxe
das linguagens de programação. Por exemplo,
não é possível representar em uma gramática
livre de contexto
- Desenvolvimento de Programas
- Otimização de Código
- O processo de otimização de
código consiste em melhorar o
código intermediário de tal
forma que o programa objeto
resultante seja mais rápido em
tempo de execução. Por
exemplo, um algoritmo para
geração do código
intermediário gera uma
instrução para cada operador
na árvore sintática, mesmo que
exista uma maneira mais
otimizada de realizar o mesmo
comando
- Geração de Código
- A fase final do compilador é a geração do código para o
programa objeto, consistindo normalmente de código
em linguagem assembly ou de código em linguagem de
máquina. Aqui é o processo de construir instruções da
linguagem máquina (em assembly, normalmente) que
simulam as instruções reconhecidas pelo analisador
sintáctico. A geração de código pode englobar: análise
semântica, geração de código intermédio, otimizadores
e geração de código final.
- Objetivo: rearranjar o código do
programa incorporando a ele todas as
partes referenciadas no código original
- resultando num código executável pelo
processador
- Tarefa é feita pelos ligadores (linkadores)
- Programa que recebe como entrada
um programa em linguagem
assembly ou de alto nível (dita
linguagem fonte) e produz como
saída as instruções deste programa
traduzidas para linguagem de
máquina