MUITAS VEZES NOS PERGUNTAMOS COMO O COMPUTADOR SABE O QUE DESEJAMOS Q ELE FAÇA POR NÓS, MAS NÃO SABEMOS COMO ISSO OCORRE, AQUI TEM UMA BREVE ESPLICAÇÃO DE COMO ISTO OCORRE.
TEM O OBJETIVO DE RECEBER UM CONJUNTO DE
INSTRUÇÕES ESCRITOS EM UMA LINGUAGEM DE "ALTO
NÍVEL" E A TRANSFORMA EM LINGUAGEM DE "BAIXO
NÍVEL", FAZENDO COM QUE O COMPUTADOR EXECUTE
ESTE CONJUNTO DE INSTRUÇÕES
ALTO NIVEL
C++, JAVA.
PASCAL.COBOL.ETC
BAIXO NIVEL
LINGUAGEM DE
MÁQUINA (BINÁRIO) 0 E 1
SE O COMPUTADOR ENTENDE
SOMENTE LINGUAGEM DE
MÁQUINA, 0 E 1 (CÓDIGO
BINÁRIO) O QUE É PRECISO PARA
QUE NÓS O ENTENDAMOS
O OBJETIVO DE QUALQUER LINGUAGEM É PROMOVER
A COMUNICAÇÃO ENTRE DUAS PARTES, (UM EMISSOR E
UM RECEPTOR) NA LINGUAGEM DE PROGRAMAÇÃO,
OCORRE A COMUNICAÇÃO, ENTRE O "PROGRAMADOR"
E O "TRADUTOR".
AMBIENTE DE
DESENVOLVIMENTO
OS 3 TIPOS
FUNDAMENTAIS
SÃO:
INTERPRETADOR
FAZ A TRADUÇÃO MAIS NÃO GERA O "CÓDIGO
OBJETO", EXECUTA UMA A UMA, AS INSTRUÇÕES
DE UM PROGRAMA COM LING. DE ALTO NÍVEL
APARTIR DO CÓDIGO FONTE
REALIZA AS TRÊS FASES
1-(COMPILAÇÃO) PEGA A PRIMEIRA
INSTRUÇÃO, E TRADUZ P/ O CÓD. DE MÁQ.
2-(FAZ A LIGAÇÃO) DETERMINA AS AÇÕES
A SEREM EXECUTADAS
APARTIR DO PROG. DE ENTRADA É GERADO OUTRO QUE É EQUIVALENTE AO
ORIGINAL, POREM EM LING. QUE É DIRETAMENTE EXECUTÁVEL, TAL COMO
LINGUAGEM DE MÁQ. OU INDIRETAMENTE EXECUTÁVEL, TAL COMO OUTRA
LING. P/ A QUAL JÁ EXISTA UM TRADUTOR. (.EXE)
FAZ DE UMA SÓ VEZ A TRADUÇÃO DO PROGRAMA ESCRITO EM UMA
LINGUAGEM DE "ALTO NÍVEL",(CÓDIGO FONTE) PARA UMA LINGUAGEM DE
"BAIXO NÍVEL"(CÓDIGO OBJETO). INDEPENDENTE DE QUANTAS VEZES O
CÓDIGO É EXECUTADO.
O CÓD. COMPILADO
É MAIS RÁPIDO DE
SER ACESSADO; CRIA
DIFICULDADES E AS
VEZES
IMPOSSIBILITA, SER
QUEBRADO E
VISUALIZADO O
CÓD.ORIGINAL.
COMPILA SOMENTE
SE ESTIVER SEM
ERROS.
DESVANTAGEM
PRECISA PASSAR POR
MUITOS NIVEIS DE
COMPILAÇÃO, POR
DIFICULTAR A
VISUALIZAÇÃO/
ALTERAÇÃO, O PROC. DE
CORREÇAO/ALTERAÇAO
REQUER QUE ELE SEJA
NOVAMENTE COMPILADO.
SINTÁTICA
SEMÂNTICA
É A TERCEIRA
FASE NA
COMPILAÇÃO
UTILIZA A ÁRVORE SINTÁTICA, TERMINADA PELO
ANÁLIZADOR SINTÁTICO, P/ VERRIFICAR ERROS.
"EX."(UMA MULTIPLICAÇÃO ENTRE TIPOS DE
DADOS DIFERENTES) E COLETA AS INFORMAÇÕES
NESCESSÁRIAS P/ A PRÓX. ETAPA DA COMPILAÇÃO,
Q É A GERAÇÃO DE PROGRAMA-OBJETO (CÓDIGO
OBJETO)
OTIMIZAÇÃO
GEREAÇÃO DO CÓDIGO
AO FINAL DE TODA A FAZE DE
COMPILAÇÃO, É FEITA A GERAÇÃO
DO CÓDIGO P/ PROGRAMA-OBJETO (CÓD. DE
MÁQ.) Q NORMALMENTE CONSISTE EM
CÓDIGO EM LINGUAGEM "ASSEMBLY" OU
NO "PRÓPRIO CÓD. D MÁQ". (CÓD.
BINÁRIO=0 E 1)
CONSISTE EM MELHORAR O CÓDIGO
INTERMEDIÁRIO DE TAL FÓRMA QUE O
PROGRAMA RESULTANTE SEJA MAIS
RÁPIDO EM TEMPO DE EXECUÇÃO.
EXEMPLO: SE UM ALGORITMO DE
GERAÇÃO DE CÓDIGO INTERMEDIARIO
GERA UMA INSTRUÇÃO PARA CADA
OPERADOR DA ÁRVORE SINTÁTICA,
MESMO Q POSSUA OUTRA FÓRMA MAIS
RÁPIDA P/ COMPRIR O MESMO
COMANDO".
EDITORES DE LIGAÇÃO (LIKER).
REARRAMJA O CÓD. DO PROG.
INCLUINDO A ELE TODAS AS PARTES
APRESENTADAS NO CÓD. ORIGINAL.
RESULTANDO NUM CÓD.EXEC.PELO
PROCESSADOR. TARÉFA FEITA PELOS
LIGADORES (LINKADORES)
DEPURADORES OU
DEBUGGERS. AUX. O
PROGRAMADOR PROCURAR
"ELIMINAR" OU E "DIMINUIR"
A QUANT. DE BUGS. (ERROS)
DE EXEC. DO SEU PROG.
ELE AGRUPA OS "TOKENS" FORNEC. PELO ANALIZ. LÉXICO EM EXTRUTURAS SINTÁTICAS, E IDENTIFICA A
ESTRUTURA GRAMÁTICAL DO PROG. E RECONHECE O PAPEL DE CADA COMPONENTE CONSTRUINDO ASSIM
A ÁRVORE SINTÁTICA CORRESPONDENTE. P/ ISSO UTILIZA-SE VÁRIAS REGRAS DE SINTAXE Q CONSTITUEM
UMA LINGUAGEM FONTE, RECONHECE ERROS SINTÁTICOS, Q SÃO FORMAÇÃO DE PROG.FONTE. QUE Ñ
ESTEJÃO DE ACORDO, COM AS REGRAS SINTÁTICAS ESPECIFICADO PELA GRAMÁTICA.
É A SEGUNDA
ETAPA DE UM
COMPILADOR
É A PRIMEIRA
ETAPA DE UM
COMPILADOR
ANALISE LÉXICA, É
O PROCESSO
UTILIZADO P/
ANÁLISE. ESSA
ANALISE É FEITA
PELO ANALIZADOR
LÉXICO, QUE VERRIF.
SE Ñ EXISTE ALGUM
CARACTER OU
SINTAXE, FÓRA DO
PADRÃO DA LING.
UTILIZADA.
DURANTE ESSA ANÁLISE OS
TOKENS SÃO CLASSIF. COMO
PALAVRAS RESERV. "
IDENTIFICADORES E SIMBOLOS
ESPECIAIS, CONSTANTES DE TIPOS
BÁSICOS". (INTEIRO, REAL, LITERAL,
ETC.). RECONHECE AS SEQUENCIAS
DE SIMBOLOS QUE REPRESENTAM
UMA UNIDADE. (EX: NOME DE VAR.
UMA CONSTANTE, UMA PALAVRA
CHAVE DE INSTRUÇÃO.(WHILE). UM
" TOKEN" CONSISTE DE UM PAR
ORDENADO (VALOR, CLASSE).
A ANALISE
LÉXIA
FUNCIONA
EM DUAS
ETAPAS
1- LÊ A ENTRADA DE CARACTER, UM DE CADA VEZ,
MUDANDO O ESTADO EM Q OS CARCT. SE ENCONTRAM,
QUANDO ENCONTRA UM Ñ IDENTIFICA COMO
CORRETO, ELE O CHAMA DE ESTADO "MORTO" ENTÃO
VOLTA P/ A ULTIMA ANÁLISE ACEITA E ASSIM ELE TEM O
TIPO E O COMPRIMENTO DO LÉXICO VALIDO.
2-SÃO REPASSADOS OS CARACT. DO LÉXICO AFIM DE PRODUZIR UM VLR. O
TIPO DE LÉX. COMBINADO COM O SEU VALOR É O Q ADQUADAMENTE
CONSTITUI UM SIMBOLO. Q PODE SER DADO A UM "PARSER".(ALGUNS
SIMBOLO COMO O PARENTESES Ñ TEM VALOR, ENTÃO A ANALISE Ñ PODE
RETORNAR NADA).
A ANÁLISE LÉX. ESCREVE UM PARSER MUITO MAIS FÁCIL. EM VES DE TER
QUE ACUMULAR, RENOMEIA SEUS CARACTERES INDIVIDUALMETENTE. O
PARSER Ñ MAIS SE PREOUCUPA COM OS SIMB. E PASSA A
PREUCUPAR-SE SÓ COM QUESTÕES DE SINTÁTICA. ISTO LEVA A
EFICIÊNCIA DE PROGRAMAÇÃO, E A Ñ EFICIÊNCIA DE EXECUÇÃO.
MONTADOR
(ASSEMBLER)
FAZ A TRADUÇÃO DIRETA DE UM PROGRAMA ESCRITO EM
LINGUAGEM DE "ALTO NÍVEL" EM UM PROGRAMA
EQUIVALENTE ESCRITO EM LINGUAGEM DE MÁQUINA
NO PROCESSO DE MONTAGEM, ELE VERRIFICA, "TODO O
CÓDIGO FONTE" DO PROGRAMADOR,
INSTRUÇAO/INSTRUÇÃO, (SE VIRRIFACANDO SE O
MNEMÔNICO CORRESPONDE A UMA INSTRUÇÃO VÁLIDA, P/
O COMPUTADOR E VERRIFICA SE A ERROS DE SINTAXE OU
NA EXTRUTURA DE LIMGUAGEM, P/ Q. POSSA SER
TRADUZIDA P/ Ó CÓD. DE MÁQ. QUALQUER ERRO
ENCONTRADO ACARRETERÁ, NA INTERRUPÇÃO DA EXEC.
DO PROG. GERANDO, MENSAGENS DE ERRO. RESOLVER AS
REFERÊNCIAS DE MEMÓRIA:
OS NOMES
SIMBÓLICOS,
ADOTADOS PELO
PROGRAMADOR, SÃO
CONVERTIDOS EM
ENDEREÇOS REAIS DE
MEMÓRIA. (VÁLORES
NÚMERICOS
BINÁRIOS DE
ENDEREÇO)
RESERVA O ESPAÇO
NA MEMÓRIA P/
ARMAZENAMENTO DE
INSTRUÇÕES E DADOS.
CONVERTE OS VALORES
DE CONSTANTE P/ O
CÓD. DE MÁQ. (0 E 1)
(BINÁRIO)