Escolar Documentos
Profissional Documentos
Cultura Documentos
O Compilador
Analise
Anlise lxica
Esse modelo pode ser definido utilizando gramticas livres de contexto que
representam uma gramtica formal e pode ser escrita atravs de algoritmos
fazem a derivao de todas as possveis construes da linguagem.
Certas gramaticas permitem que uma mesma sentena tenha mas de uma
rvore de derivao, isso torna a gramtica inadequada para a linguagem de
programao, pois o compilador no pode determinar a estrutura desse
programa fonte. Duas derivaes podem gerar uma unica rvore sinttica,
mas duas rvores sintticas no podem ser geradas por uma derivacao.
Essa etapa tambm captura informaes sobre o programa fonte para que as
fases subsequentes gerar o cdigo objeto, um importante componente da
analise semntica a verificao de tipos, nela o compilador verifica se cada
operador recebe os operandos permitidos e especificados na linguagem
fonte.
Inferncia de tipos
Uma classe com funes declaradas como privadas e essas funes sendo
utilizadas fora da classe.
Compatibilidade de tipos:
Gerao de cdigo
A traduo do cdigo de alto nvel para o cdigo do processador est
associada traduzir para a linguagem-alvo a representao da rvore
gramatical obtida para as diversas expresses do programa. Embora tal
atividade possa ser realizada para a rvore completa aps a concluso da
anlise sinttica, em geral ela efetivada atravs das aes semnticas
associadas aplicao das regras de reconhecimento do analisador sinttico.
Este procedimento denominado traduo dirigida pela sintaxe.
Notao posfixa
A notao tradicional para expresses aritmticas, que representa uma
operao binria na forma x+y, ou seja, com o operador entre seus dois
operandos, conhecida como notao infixa. Uma notao alternativa para
esse tipo de expresso a notao posfixa, tambm conhecida como notao
polonesa3.1, na qual o operador expresso aps seus operandos.
EXTRAS
Diretivas de compilao
#include
#define
#undef
#ifdef
#ifndef
#if
#else
#elif
#endif
#pragma
Pr-processador
Linker
Mas voc ainda no pode executar um arquivo objeto pois o contedo dele
estar incompleto. Por exemplo, se voc colocar um comando printf para exibir
uma mensagem na tela, apesar de seu cdigo ter sido compilado, o arquivo
objeto gerado no saber o que printf, ele s possui uma referncia a essa
funo, mas sua estrutura se encontra em uma biblioteca a parte. O linker
responsvel linkar (ligar, unir) as instrues que esto em outras bibliotecas ou
em outros arquivos objeto e gerar um nico arquivo executvel.
Diretivas de pr-processamento
#include
Para incluir um arquivo usamos a diretiva include. Ela diz ao compilador para
copiar o contedo deste arquivo para alguma parte do seu cdigo.
#define
#define PI 3.1415926
Ou definir uma funo simples:
#undef
#ifdef e #ifndef
#pragma