Tradutores ANTLR & ANTLRWorksGuilherme Wunsch, Isaías Rosa e Juliano Flores    Universidade do Vale do Rio dos Sinos
Agenda•   Informações•   Características•   Funcionamento•   ANTLRWorks    – Diagramas Sintáticos    – Parse Tree    – AST...
Informações• ANother Tool for Language Recognition• Ferramenta de Linguagem (Gerador de  Interpretadores, Compiladores e T...
Características• Entrada: Gramática Formal (notação EBNF)• Saída Básica (código):   – Lexer   – Parser• Linguagens de Prog...
FuncionamentoRequisitos:  1. Gramática: Gramatica.g  2. Executor: Teste.java  3. Entrada (opcional): entrada.txt          ...
FuncionamentoExecução:  1. antlr: Gera as classes lexer e parser:           • GramaticaLexer.java           • GramaticaPar...
ANTLRWorks•   IDE•   Multiplataforma•   Versão 1.4.3•   Jean Bovet & Terence Parr•   Conteúdo:    –   Editor sensível ao c...
ANTLRWorks             8
Demonstração Debugger                        9
Arvore Sintatica                   10
Arvore Sintática Abstrata (AST)                                  11
AST parcial              12
Demonstração compilação e execução1. Gerar código pela IDE;2. Criar classe de Testes (Teste.java);3. Compilar código inclu...
Referências•   http://www.antlr.org•   http://en.wikipedia.org/wiki/ANTLR•   http://en.wikipedia.org/wiki/LL_parser•   htt...
Dúvidas?           15
Obrigado!            16
Upcoming SlideShare
Loading in …5
×

ANTLR & ANTTLRWorks

1,174 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,174
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ANTLR & ANTTLRWorks

  1. 1. Tradutores ANTLR & ANTLRWorksGuilherme Wunsch, Isaías Rosa e Juliano Flores Universidade do Vale do Rio dos Sinos
  2. 2. Agenda• Informações• Características• Funcionamento• ANTLRWorks – Diagramas Sintáticos – Parse Tree – AST• Exemplo de Debug• Referências 2
  3. 3. Informações• ANother Tool for Language Recognition• Ferramenta de Linguagem (Gerador de Interpretadores, Compiladores e Tradutores)• Sucessor do PCCTS (Purdue Compiler Construction Tool Set)• Versão 3.4• Software Livre• Licença BSD• Terence Parr• 1989!• University San Francisco 3
  4. 4. Características• Entrada: Gramática Formal (notação EBNF)• Saída Básica (código): – Lexer – Parser• Linguagens de Programação suportadas: Ada95, ActionScript, C, C#, Java, JavaScript, Objec tive-C, Perl, Python, e Ruby• Alta Legibilidade• Tipo: LL(*) 4
  5. 5. FuncionamentoRequisitos: 1. Gramática: Gramatica.g 2. Executor: Teste.java 3. Entrada (opcional): entrada.txt 5
  6. 6. FuncionamentoExecução: 1. antlr: Gera as classes lexer e parser: • GramaticaLexer.java • GramaticaParser.java 2. javac: Compilar estes dois e Teste.java • GramaticaLexer.class, GramaticaParser.class • Teste.class 3. java: Executar java Teste < entrada.txt 6
  7. 7. ANTLRWorks• IDE• Multiplataforma• Versão 1.4.3• Jean Bovet & Terence Parr• Conteúdo: – Editor sensível ao contexto, – Interpretador, – Compilador, – e Depurador ANTLR. 7
  8. 8. ANTLRWorks 8
  9. 9. Demonstração Debugger 9
  10. 10. Arvore Sintatica 10
  11. 11. Arvore Sintática Abstrata (AST) 11
  12. 12. AST parcial 12
  13. 13. Demonstração compilação e execução1. Gerar código pela IDE;2. Criar classe de Testes (Teste.java);3. Compilar código incluindo antlr.jar no CLASSPATH; – javac –classpath “.;C:Pastaantlr.jar” *.java4. Executar código incluindo antlr.jar no CLASSPATH; – java –classpath “.;C:Pastaantlr.jar” Teste entrada.txt 13
  14. 14. Referências• http://www.antlr.org• http://en.wikipedia.org/wiki/ANTLR• http://en.wikipedia.org/wiki/LL_parser• http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93 Naur_Form• http://pt.wikipedia.org/wiki/An%C3%A1lise_sint%C3%A1tic a_(computa%C3%A7%C3%A3o)• http://www.youtube.com/watch?v=9Zcfz9o5vNk• http://www2.icmc.usp.br/~gracan/teoria/SubItem51Teoria. html• http://supportweb.cs.bham.ac.uk/docs/tutorials/docsyste m/build/tutorials/antlr/antlr.html 14
  15. 15. Dúvidas? 15
  16. 16. Obrigado! 16

×