| Linha 23: | Linha 23: | ||
== Bytecode == | == Bytecode == | ||
== Exemplos de interpretadores == | == Exemplos de interpretadores == | ||
Interpretadores podem ser tanto '''programas interpretadores''' quanto '''linguagens interpretadoras'''. | |||
*Visual Basic | |||
*PHP | |||
*Java | |||
*Ruby | |||
== Referências Bibliográficas == | == Referências Bibliográficas == | ||
http://producao.virtual.ufpb.br/books/camyle/introducao-a-computacao-livro/livro/livro.chunked/ch05s04.html ''(25/05/2017 - 16:20)'' | http://producao.virtual.ufpb.br/books/camyle/introducao-a-computacao-livro/livro/livro.chunked/ch05s04.html ''(25/05/2017 - 16:20)'' | ||
https://pt.stackoverflow.com/questions/113578/o-que-%C3%A9-analise-l%C3%A9xica ''(04/06/2017 - 17:57)'' | https://pt.stackoverflow.com/questions/113578/o-que-%C3%A9-analise-l%C3%A9xica ''(04/06/2017 - 17:57)'' | ||
http://www.comp.ita.br/~mokarzel/arquivos/CES41%20Cap%201-b.ppt ''(04/06/2017 - 18:20)'' | http://www.comp.ita.br/~mokarzel/arquivos/CES41%20Cap%201-b.ppt ''(04/06/2017 - 18:20)'' | ||
Edição das 21h31min de 4 de junho de 2017
Conceito
- O software interpretador é um programa de computador que executa instruções escritas em uma linguagem de programação. Por exemplo, as linguagens Basic, Prolog, Python e Java, são frequentemente interpretadas. Um interpretador geralmente usa uma das seguintes estratégias para a execução do programa:
- Executar o código fonte diretamente ou
- Traduzir o código fonte em alguma representação intermediária e depois executar este código.
- Para isso, certos tipos de tradutores transformam uma linguagem fonte em uma linguagem simplificada, chamada de código intermediário, que pode ser diretamente “executado” por um programa chamado interpretador. Podemos imaginar o código intermediário como uma linguagem de máquina de um "computador abstrato" projetado para executar o código fonte.
- Interpretadores são, em geral, menores que compiladores e facilitam a implementação de construções complexas em linguagens de programação. Entretanto, o tempo de execução de um programa interpretado é geralmente maior que o tempo de execução deste mesmo programa compilado, pois o interpretador deve analisar cada declaração no programa a cada vez que é executado e depois executar a ação desejada, enquanto que o código compilado apenas executa a ação dentro de um contexto fixo, anteriormente determinado pela compilação. Este tempo no processo de análise é conhecido como overhead interpretativa.
Princípio de funcionamento
Análise Léxica
- Definição
Análise léxica é o processo realizado sobre um texto, digamos um programa de computador ou então uma linguagem de marcação como HTML, que divide este em lexemes e os converte para uma sequência de tokens, os quais são usados para alimentar um parser. Um programa que realiza análise léxica é geralmente chamado de lexer, scanner ou tokenizer.
- Tokens/Lexemes
Lexemes são unidades sintáticas relevantes do contexto do lexer, por exemplo para um lexer voltado a uma certa linguagem de programação alguns lexemes poderiam ser: 1, "olá", for, ==, variableName, function. Um token é uma estrutura que categoriza um lexeme, ele contêm um nome abstrato que representa o grupo do lexeme e um possível valor deste caso o grupo não seja único.
Análise Sintática
- Durante a análise sintática, o programa-fonte é armazenado numa estrutura denominada árvore do programa
- Depois, essa estrutura é percorrida, para que os comandos do programa sejam executados
- Exemplo: operações matemáticas
1 + 2 * 3
Bytecode
Exemplos de interpretadores
Interpretadores podem ser tanto programas interpretadores quanto linguagens interpretadoras.
- Visual Basic
- PHP
- Java
- Ruby
Referências Bibliográficas
http://producao.virtual.ufpb.br/books/camyle/introducao-a-computacao-livro/livro/livro.chunked/ch05s04.html (25/05/2017 - 16:20) https://pt.stackoverflow.com/questions/113578/o-que-%C3%A9-analise-l%C3%A9xica (04/06/2017 - 17:57) http://www.comp.ita.br/~mokarzel/arquivos/CES41%20Cap%201-b.ppt (04/06/2017 - 18:20)