article

Um compilador é um programa que troca um código escrito em uma linguagem, o código fonte (do inglês source code), em um programa equivalente em outra linguagem, código objeto (do inglês object code). Um compilador é um dos dois tipos de tradutores, sendo que o segundo tipo que a ele deve ser comparado é um interpretador.

Normalmente, o código fonte é escrito em uma linguagem de programação de alto nível, com grande capacidade de abstração, e o código objeto é escrito em uma linguagem de baixo nível, como uma sequência de instruções a ser executada por um sistema computacional.

O processo de compilação é composto de análise e síntese. A análise tem como objetivo entender o código fonte e representá-lo em uma estrutura intermediária. A síntese constrói o código objecto a partir desta representação intermediária.

A análise pode ser subdividida ainda em análise léxica, análise sintática e análise semântica. A síntese é mais variada, podendo ser composta pelas etapas de Geração de código intermediário, optimização de código e geração de código final (ou código de máquina), e somente esta última etapa é obrigatória.

Em linguagens de programação híbridas, o compilador tem o papel de converter o código fonte em um código chamado de byte code, que é uma linguagem de baixo nível. Um exemplo deste comportamento é o do compilador da linguagem Java que, em vez de gerar código da máquina hospedeira (onde se está executando o compilador), gera código chamado Java Bytecode.

Muitos compiladores incluem um pré-processadores. Um pré-processador normalmente é responsável por mudanças no código fonte destinadas de acordo com decisões tomadas em tempo de compilação. Por exemplo, um programa em C permite instruções condicionais para o pré-processador que podem incluir ou não parte do código caso uma assertiva lógica seja verdadeira ou falsa, ou simplesmente um termo esteja definido ou não. Tecnicamente, pré-processadores são muito mais simples que compiladores e são vistos, pelos desenvolvedores, como programas à parte, apesar dessa visão não ser necessariamente compartilhada pelo usuário.

Outra parte separada do compilador que muitos usuários vêem como integrada é o linker, cuja função é unir vários programas já compilados de uma forma independente e unificá-los em um programa executável. Isso inclui colocar o programa final em um formato compatível com as necessidades do sistema operacional para carregá-lo em memória e colocá-lo em execução.

Livros


  • Compilers - Principles, Techniques and Tools (ISBN 0201100886), conhecido como livro do dragão, devido a figura de sua capa.

Veja também


Programação

Vertalerkonstruksie | Compilador | Компилатор | Compilador | Překladač | Compiler | Compiler | Compiler | Compilador | Kompilaator | Ohjelmointikielen kääntäjä | Compilateur | Compilador | מהדר | Program-prevodilac | Fordítóprogram | Kompilator | Compilatore | コンパイラ | 컴파일러 | Kompiliatorius | Compiler | Kompilator | Kompilator | Транслятор | Compiler | Kompilator | ตัวแปลโปรแกรม | Derleyici | Trình biên dịch | 编译器

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Compilador".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld