16
Tradutores ANTLR & ANTLRWorks Guilherme Wunsch, Isaías Rosa e Juliano Flores Universidade do Vale do Rio dos Sinos

ANTLR & ANTTLRWorks

Embed Size (px)

Citation preview

Page 1: ANTLR & ANTTLRWorks

Tradutores

ANTLR & ANTLRWorks

Guilherme Wunsch, Isaías Rosa e Juliano Flores

Universidade do Vale do Rio dos Sinos

Page 2: ANTLR & ANTTLRWorks

2

Agenda

• Informações• Características• Funcionamento• ANTLRWorks– Diagramas Sintáticos– Parse Tree– AST

• Exemplo de Debug• Referências

Page 3: ANTLR & ANTTLRWorks

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

Page 4: ANTLR & ANTTLRWorks

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, Objective-C, Perl, Python, e Ruby

• Alta Legibilidade• Tipo: LL(*)

Page 5: ANTLR & ANTTLRWorks

5

Funcionamento

Requisitos:1. Gramática: Gramatica.g2. Executor: Teste.java3. Entrada (opcional): entrada.txt

Page 6: ANTLR & ANTTLRWorks

6

Funcionamento

Execuçã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

Page 7: ANTLR & ANTTLRWorks

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.

Page 8: ANTLR & ANTTLRWorks

8

ANTLRWorks

Page 9: ANTLR & ANTTLRWorks

9

Demonstração Debugger

Page 10: ANTLR & ANTTLRWorks

10

Arvore Sintatica

Page 11: ANTLR & ANTTLRWorks

11

Arvore Sintática Abstrata (AST)

Page 12: ANTLR & ANTTLRWorks

12

AST parcial

Page 13: ANTLR & ANTTLRWorks

13

Demonstração compilação e execução

1. Gerar código pela IDE;2. Criar classe de Testes (Teste.java);3. Compilar código incluindo antlr.jar no

CLASSPATH;– javac –classpath “.;C:\Pasta\antlr.jar” *.java

4. Executar código incluindo antlr.jar no CLASSPATH;– java –classpath “.;C:\Pasta\antlr.jar” Teste

entrada.txt

Page 15: ANTLR & ANTTLRWorks

15

Dúvidas?

Page 16: ANTLR & ANTTLRWorks

16

Obrigado!