Você está na página 1de 4

Compiladores - Definio

Um compilador um programa (ou um conjunto de programas) que traduz um c digo fonte para uma linguagem de mais baixo n vel (a linguagem alvo, que tem uma forma bin c digo fonte ria conhecida como c o, e o c digo objeto). Normalmente, o o de alto n vel, digo objeto escrito em escrito em uma linguagem de programa

com grande capacidade de abstra

uma linguagem de baixo n vel, como uma sequ ncia de instru es a ser executada pelo processador. O compilador um dos dois tipos mais gerais de tradutores, juntamente com o interpretador. y C digo fonte o conjunto de palavras ou s mbolos escritos de forma ordenada, contendo instru es em uma das linguagens de programa o existentes, de maneira l gica. Linguagem um m todo padronizado para expressar instru para um computador. um conjunto de regras sint ticas e sem nticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados ser o armazenados ou transmitidos e quais a tomadas sob v rias circunst ncias. y es devem ser es

C digo objeto o nome dado ao c digo resultante da compil o do c digo fonte.Normalmente, o c digo fonte formado por uma sequ ncia de instru es no formato especificado por alguma linguagem de programa fonte "ligado" aos outros, atrav execut vel ou biblioteca. o. Para cada arquivo de c digo digo objeto, que posteriormente s de um linker, resultando num arquivo gerado um arquivo com c

Compiladores Componentes de um compilador


A constru o de um compilador com uma fun o especifica:
y

dividida em partes, cada uma

Analisador L xico (AL): separa no programa fonte cada s mbolo que tenha algum significado para a linguagem ou avisa quando um s mbolo que n o faz parte da linguagem encontrado. An lise Sint tica (AS): o respons vel por verificar se a seq ncia de s mbolos existentes no programa fonte formam

um programa v lido ou n o. constru do sobre uma gram tica composta de uma s rie de regras que descrevem quais s o as constru es v lidas da linguagem.
y

An lise Sem ntica (ASE): ir verificar se os aspectos sem nticos est o corretos, ou seja, se n o existem incoer ncias quanto ao significado das constru es utilizadas pelo programador. A ASE depende de uma tabela de s mbolos onde s o armazenadas as informa es de vari veis declaradas, fun es ou m todos, entre outros. Gera o e Otimiza o de C digo (GC): ap s a verifica o que n o existem erros sint ticos ou sem nticos, o compilador realiza a sua tarefa de criar o programa objeto que reflete, mediante instru es de baixo n vel, os comandos do programa fonte. Tamb m pode fazer a otimiza o do c digo, onde s o aplicadas diversas t cnicas para otimizar algumas caracter sticas do programa objeto, como o seu tamanho ou sua velocidade.

Compiladores - Processo de Compilao


O processo de compila o composto de an lise e s ntese

A an lise tem como objetivos entender o c digo fonte, verificar erros, falhas e inconsist ncias, e represent -lo em uma estrutura intermedi ria. Pode ser subdividida ainda em an lise l xica, an lise sint tica e an lise sem ntica. A s ntese constr i o c digo objeto a partir desta representa o intermedi ria, e mais variada, podendo ser composta pelas etapas de Gera o de c digo intermedi rio, otimiza o de c digo e gera o de c digo final (ou c digo de m quina), sendo somente esta ltima etapa obrigat ria. Pr Processador Muitos compiladores incluem um pr -processador. 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. Linker 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. Interpretadores S o programas de computador que l em um c digo fonte de uma linguagem de programa o e os convertem em c digo execut vel. Seu funcionamento pode variar de acordo com a implementa o. Em muitos casos o interpretador l linha-a-linha e converte em c digo objeto medida que vai executando o programa. Linguagens interpretadas s o mais din micas por n o precisarem escrevercompilar-testar-corrigir-compilar-testar-distribuir, e sim escrever-testar-corrigir-escrever-testar-distribuir. Mas existem tamb m linguagens que funcionam tanto como interpretadores quanto como compiladores, como, por exemplo, Python (quando requerido). A princ pio, podem-se implementar compiladores e interpretadores para qualquer linguagem de programa o. Mas para determinadas linguagens mais f cil "fabricar" interpretadores, e para outras mais pr tico um compilador. Bytecode Um compilador traduz um programa de uma linguagem textual, facilmente entendida por um ser humano, para uma linguagem de m quina, espec fica para um processador e um sistema operacional. Em linguagens de programa o h bridas, o compilador tem o papel de converter o c digo fonte em um c digo chamado de Bytecode (c digo em bytes), que um est gio intermedi rio entre o c digo-fonte (escrito numa linguagem de programa o espec fica) e a aplica o final. Para executar o bytecode utilizamos uma m quina virtual, que serve para interpretar e executar o bytecode. As principais vantagens do bytecode s o:

Portabilidade (Independecia de Sistema Operacional) pois o bytecode roda na m quina virtual, e n o no Sistema Operacional do equipamento. N o-necessidade do pr -processamento, t pico dos compiladores.

O bytecode encarado como um produto final, cuja valida o da sintaxe e tipos de dados (entre outras fun es dos compiladores) n o ser necess ria. Como exemplo de linguagens que utilizam bytecode temos: Java e Lua. Just in time Compiler (JIT)
Um compilador chamado de Just-in-time compiler (JIT) quando seu processo de compila o acontece apenas quando o c digo chamado. Normalmente, o usu rio tem a percep o que um compilador JIT um interpretador.

Você também pode gostar