Tradutores: Compiladores e InterpretadoresIntroducao: Tradutores Tradutores sao programas que tem por finalidade principal realizar a traducao de uma linguagem de programacao em outra: a primeira e a linguagem fonte e a segunda e a linguagem objeto, sendo que o resultado do processo de conversao (linguagem objeto) deve ser equivalente, ou seja, apresentar o mesmo proposito do conteudo da linguagem inicial (linguagem fonte). Dessa forma, verifica-se que o objetivo geral dos tradutores e fazer a comunicacao entre o Software programa escrito em uma linguagem de programacao e o Hardware equipamento responsavel pela execucao fisica das instrucoes logicas. Entre os tradutores, os mais conhecidos sao os seguintes: Compiladores, Interpretadores, Montadores (Assemblers) e Maquina Virtual. Esquematicamente, tem-se: A figura ja foi colocada por Kelly!Figura 1 (Esquema geral de funcionamento de um Tradutor)DefinicaoCompiladores Compiladores sao tipos de tradutores que possuem uma forma especifica de conversao, pois atuam na transformacao de uma linguagem de alto nivel (proxima do entendimento humano) para uma linguagem de baixo nivel linguagem de maquina (reconhecida pelo hardware do computador). Os compiladores podem ser assim esquematizados:A figura ja foi colocada por Kelly!Figura 2 (Esquema especifico de um Compilador) Alem de realizar o processo de conversao, os compiladores tambem sao responsaveis, na maioria das vezes, pela execucao de outras tarefas que mantem relacao com a principal, tais como: deteccao de erros e a permissao para a inclusao de comentarios. A deteccao de erros e implantada atraves de mecanismos que alem de identificar, recupera e elabora relatorio de todas as incorrecoes encontradas no programa, eliminando com isso a necessidade de o mesmo ser submetido ao compilador toda vez que um novo erro ocorrer. A permissao de inclusao de comentarios a linguagem fonte, seja por meio da estrutura da sintaxe desta ou recursos do proprio compilador, e uma ferramenta que contribui para uma melhor documentacao do programa.Estrutura dos Compiladores Os compiladores no que diz respeito a sua estrutura estao divididos em tres grandes partes ou modulos funcionais descritos da seguinte forma: Analise Lexica, Analise Sintatica e Analise Semantica.Analise Lexica E o modulo do compilador que faz a comunicacao entre a linguagem fonte e a Analise Sintatica. Para isso, tem como tarefa principal a fragmentacao do conteudo fonte, a identificacao e a classificacao das partes componentes do mesmo (atomos ou tokens). A Analise Lexica utiliza-se de um conjunto de operacoes, ou melhor, funcoes para atingir o proposito pelo qual foi elaborada. A seguir sao descritas as principais funcoes da Analise Lexica: Extracao e Classificacao de Atomos, Eliminacao de Delimitadores e Comentarios, Conversao Numerica, Tratamento de Identificadores, Tratamento de Palavras Reservadas, Recuperacao de Erros e as Funcoes Auxiliares (Geracao de Tabelas de Referencias Cruzadas, Definicao e Expansao de Macros, Interacao com o Sistema Operacional, Controle de Compilacao Condicional e Geracao e Controle de Listagem).Extracao e Classificacao de Atomos E responsavel por mapear o texto fonte em outro formato de texto que sera constituido pelos atomos extraidos e classificados a partir daquele. Entre os atomos dessa etapa, encontram-se os seguintes: identificadores, numeros inteiros sem sinal, numeros reais, palavras reservadas, cadeias de caracteres (strings), operadores, sinais de pontuacao, comentarios, simbolos