|
|
| Linha 4: |
Linha 4: |
| <br> | | <br> |
|
| |
|
| = Conceito =
| | 1 Conceito |
| <br>
| | 2 Princípio de funcionamento |
| | | 3 Análise Léxica |
| | | 4 Análise Sintática |
| Um interpretador é um tipo de tradutor que traduz o código fonte em linguagem de máquina através da interpretação de cada instrução feita à medida que o software é executado, ou seja, um interpretador lê uma linguagem de alto nível e a coloca em execução.
| | 5 Bytecode |
| | | 6 Exemplos de interpretadores |
| | | 7 Referências Bibliográficas |
| | |
| [[Arquivo: interpretação 1.jpg]]
| |
| | |
| = Princípio de funcionamento =
| |
| <br>
| |
| | |
| | |
| O programa conversor recebe a primeira instrução do programa fonte, confere para ver se está escrita corretamente, converte-a em linguagem de máquina e então ordena ao computador que execute esta instrução. Depois repete o processo para a segunda instrução, e assim sucessivamente, até a última instrução do programa fonte. Quando a segunda instrução é trabalhada, a primeira é perdida, isto é, apenas uma instrução fica na memória em cada instante.
| |
| Se este programa fonte for executado uma segunda vez, novamente haverá uma nova tradução, comando por comando, pois os comandos em linguagem de máquina não ficam armazenados para futuras execuções
| |
| O interpretador analisa sintaticamente e semanticamente o código, se estas duas etapas forem realizadas e executadas de forma correta o código está pronto para funcionar.
| |
| | |
| | |
| [[Arquivo:interpretação.jpg]]
| |
| | |
| = Análise Léxica =
| |
| <br>
| |
| | |
| | |
| É o processo de analisar a entrada de linhas de caracteres (tal como o código-fonte de um programa de computador) e produzir uma seqüência de símbolos chamados “símbolos léxicos”, ou somente "símbolos" (tokens)- tokens é uma sequencia logicamente coesa de caracteres que representam um único símbolo-, que podem ser manipulados mais facilmente pelo compilador. A Análise Léxica é a forma de verificar determinado alfabeto. Um exemplo similar de analise lexica é quando ao analisar uma palavra, pode-se definir através da análise léxica se existe ou não algum carácter que não faz parte do nosso alfabeto, ou um alfabeto inventado por nós.
| |
| | |
| = Análise Sintática =
| |
| <br>
| |
| | |
| | |
| É o processo de analisar uma seqüência de entrada (lida de um arquivo de computador ou do teclado) para determinar sua estrutura gramatical segundo uma determinada gramática formal. A análise sintática transforma um texto na entrada em uma estrutura de dados, em geral uma árvore, o que é conveniente para processamento posterior e captura a hierarquia implícita desta entrada. Através da análise léxica é obtido um grupo de tokens, para que o analisador sintático use um conjunto de regras para construir uma árvore sintática da estrutura.
| |
| Em termos práticos, pode também ser usada para decompor um texto em unidades estruturais para serem organizadas dentro de um bloco, por exemplo.
| |
| | |
| = Bytecode =
| |
| <br>
| |
| | |
| | |
| Bytecode ( código em bytes) é o resultado de um processo semelhante ao dos compiladores de código-fonte, o bytecode pode ser interpretado numa máquina virtual, que fará a execução. Assim, o bytecode é um estágio intermédio entre o código-fonte e a aplicação final, sendo a sua vantagem principal a dualidade entre a portabilidade — o bytecode irá produzir o mesmo resultado em qualquer arquitetura — e a ausência da 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.
| |
| | |
| | |
| | |
| | |
| <br>
| |
| | |
| | |
| | |
| | |
| | |
| [[Arquivo:Nt-bytecode.png]]
| |
| | |
| | |
| | |
| | |
| | |
| <br>
| |
| | |
| = Exemplos de interpretadores =
| |
| <br>
| |
| | |
| • Navegadores;
| |
| | |
| • Excel, Word, Basic, Access, ... ;
| |
| | |
| • SmallTalk;
| |
| | |
| • AutoLisp;
| |
| | |
| • Prolog (algumas versões);
| |
| | |
| • Matlab;
| |
| | |
| • Lisp.
| |
| | |
| • Internet
| |
| | |
| • Ruby
| |
| | |
| • Jruby
| |
| | |
| • Ironruby
| |
| | |
| • Macruby
| |
| | |
| | |
| | |
| | |
| [[Arquivo: ruby-3-728.jpg]]
| |
| | |
| = Referências Bibliográficas =
| |
| <br>
| |
| | |
| | |
| Disponível em :< http://www.din.uem.br/~yandre/ICC/introducao-grande.pdf>. Acesso em 13 de abril de 2016.
| |
| | |
| Disponível em : <https://www.researchgate.net/profile/Joao_Ferreira25/publication/267947976_PROGRAMAS_PARA_A_INTERNET_VISANDO_A_DETERMINAO_DO_TAMANHO_DE_LOTE_TIMO_E_O_BALANCEAMENTO_DE_LINHA/links/54bdcfa20cf27c8f2814ce36.pdf>. Acesso em 13 de abril de 2016
| |
| | |
| Disponível em: <http://paginapessoal.utfpr.edu.br/danielc/Ensino/Graduacao/2015.1/ET42G/et42g-2015.1/Aula2.pdf>. Acesso em 13 de abril de 2016.
| |
| | |
| Disponível em: <https://books.google.com.br/books?hl=pt-BR&lr=&id=nv4ZbkhP-nsC&oi=fnd&pg=PR7&dq=compilador+interpretador&ots=Z3dGxM9_Mc&sig=gK2yoJdcRWUppATNa07Q_VdnjZ8>. Acesso em
| |
| | |
| Disponível em: <http://tutoria.ualg.pt/2013/pluginfile.php/72095/mod_resource/content/3/comp_1314_01.pdf>. Acesso em 14 de abril de 2016.Disponível em:
| |
| | |
| Disponível em: <http://unipe.tanure.net/arquivos/20091/comp2/aula1.pdf>. Acesso em 14 de abril de 2016.
| |
| | |
| Disponível em: <http://professores.dcc.ufla.br/~terra/public_files/2011_apostila_logica.pdf>, Acesso em 14 de abril de 2016.
| |
| | |
| Disponível em: <https://www.oficinadanet.com.br/artigo/1527/diferencas_entre_compiladores_e_interpretadores>. Acesso em 14 de abril de 2016.
| |
| | |
| Disponível em: <https://upload.wikimedia.org/wikipedia/commons/3/38/Nt-bytecode.png>. Acesso em 18 de abril de 2016.
| |
| '''
| |
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese
das pesquisas que fizer.
1 Conceito
2 Princípio de funcionamento
3 Análise Léxica
4 Análise Sintática
5 Bytecode
6 Exemplos de interpretadores
7 Referências Bibliográficas