A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Análise léxica e sintática

Apresentações semelhantes


Apresentação em tema: "Análise léxica e sintática"— Transcrição da apresentação:

1 Análise léxica e sintática
Teoria e Implementação de Linguagens Computacionais - IF688 Allan J. Souza

2 O que é ANTLR? ANother Tool for Language Recognition
Ferramenta poderosa para o processo de construção de uma linguagem de programação Oferece um framework para desenvolvimento de compiladores, tradutores e aplicações afins ANTLR foi desenvolvida por Terence Parr, professor de Ciência da Computação da Universidade de São Francisco

3 Funcionamento do ANTLR
Através da definição da gramática, ANTLR é responsável por gerar o analisador léxico (Lexer) e o analisador sintático (Parser)

4 Por que ANTLR? Ganho no tempo de desenvolvimento
ANTLRWorks (IDE) - possui ferramentas para construção e depuração da gramática Dá suporte a várias linguagens como C/C++, C#, Java, Python, entre outras

5 ANTLRWorks

6 ANTLRWorks GUI do ambiente de desenvolvimento de gramáticas para o ANTLR Oferece: Editor - highligthing, auto completion; Diagrama de sintaxe - visualização das produções; Interpretador - para prototipação rápida; Debugger - isolamento de erros na gramática.

7 ANTLR Editor Auto-completion; syntax highlighting;

8 ANTLR Interpretador The interpreter allows to quickly test the grammar with a sample input;

9 ANTLR Debugger Used to step through the parse;

10 Resumindo... Construir a gramática de forma incremental torna a tarefa mais fácil O ANTLRWorks com seus recursos gráficos e de prototipação agilizarão o processo. Geração automática do Lexer e do Parser utilizando a GUI.

11 Exercícios

12 Exercícios Devem ser enviados ao da monitoria até uma hora após o termino da aula. As resoluções devem estar em arquivos diferentes para cada exercício. Utilizem o arquivo /exercicio.g

13 Gramática ANTLR (Exemplo)
grammar SimpleCalc ; tokens { PLUS = '+' ; MINUS = '-' ; } expr : term ( ( PLUS | MINUS ) term )* ';' ; term : number ; number : DIGIT+ ; DIGIT : '0'..'9' ; WHITESPACE : ( '\t' | ' ' | '\r' | '\n'| '\u000C' )+ { $channel = HIDDEN; } ;

14 Exercício 1 Estender a gramática exemplo para reconhecer também operações de multiplicação e divisão Obs.: a extensão deve ser feita respeitando a precedência dos operadores

15 Exercício 2 Estender a gramática do exercício 1 para oferecer suporte a variáveis. Ex: a b; b - a * 4; 3 / 1 + b;

16 Exercício 3 Estender a gramática do exercício 2 para que reconheça comandos de atribuição. A linguagem também deve oferecer a possibilidade de comandos múltiplos (sequência de expressões e/ou atribuições)

17 Análise léxica e sintática
Teoria e Implementação de Linguagens Computacionais - IF688 Allan J. Souza


Carregar ppt "Análise léxica e sintática"

Apresentações semelhantes


Anúncios Google