1 / 17

Análise léxica e sintática

Análise léxica e sintática. Teoria e Implementação de Linguagens Computacionais - IF688. Allan J. Souza { ajss }@ cin.ufpe.br. O que é ANTLR?. AN other T ool for L anguage R ecognition Ferramenta poderosa para o processo de construção de uma linguagem de programação

maegan
Download Presentation

Análise léxica e sintática

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Análise léxica e sintática Teoria e Implementação de Linguagens Computacionais - IF688 Allan J. Souza{ajss}@cin.ufpe.br

  2. O que é ANTLR? • ANotherTool for Language Recognition • Ferramentapoderosapara o processo de construção de umalinguagem de programação • Oferece um frameworkparadesenvolvimento de compiladores, tradutores e aplicaçõesafins ANTLR foidesenvolvidapor Terence Parr, professor de CiênciadaComputaçãodaUniversidade de São Francisco

  3. Funcionamento do ANTLR • Atravésdadefiniçãodagramática, ANTLR é responsávelporgerar o analisadorléxico (Lexer) e o AnalisadorSintatico (Parser)

  4. Por que ANTLR? • Ganho no tempo de desenvolvimento • ANTLRWorks (IDE) - possuiferramentasparaconstrução e depuraçãodagramática • Dásuporte a váriaslinguagenscomo C/C++, C#, Java, Python, entre outras

  5. ANTLRWorks

  6. ANTLRWorks • GUI do ambiente de desenvolvimento de gramáticaspara o ANTLR • Oferece: • Editor - highligthing, auto completion; • Diagrama de sintaxe - visualização das produções; • Interpretador - paraprototipaçãorápida; • Debugger - isolamento de errosnagramática.

  7. ANTLREditor

  8. ANTLRInterpretador

  9. ANTLRDebugger

  10. 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; } ;

  11. Resumindo... • Construir a gramática de forma incremental torna a tarefamaisfácil • O ANTLRWorks com seusrecursosgráficos e de prototipaçãoagilizarão o processo. • Geraçãoautomática do Parser e do AnalisadorSintáticoutilizando a GUI.

  12. Exercícios

  13. Exercício 1 • Estender a gramáticaexemploparareconhecertambémoperações de multiplicação e divisão • Obs.: a extensãodeve ser feitarespeitando a precedência dos operadores

  14. Exercício 2 • Estender a gramática do exercício 1 paraoferecersuporte a variáveis. • Ex: • a + 1 - b; • b - a * 4; • 3 / 1 + b;

  15. Exercício 3 • Estender a gramática do exercício 2 paraquereconheçacomandos de atribuição. A linguagemtambémdeveoferecer a possibilidade de comandosmúltiplos (sequência de expressões e/ouatribuições)

  16. Exercícios • Devem ser enviados ao e-mail da monitoria <monitoria-if688@googlegroups.com> até uma hora após o termino da aula. • As resoluções devem estar em arquivos diferentes para cada exercício.

  17. Análise léxica e sintática Teoria e Implementação de Linguagens Computacionais - IF688 Allan J. Souza{ajss}@cin.ufpe.br

More Related