Home » Java » antlr » Tutorial ANTLR – parte 1 – Apresentação

Tutorial ANTLR – parte 1 – Apresentação

 

Definição

ANother Tool for Language Recognition  que em bom pt-br seria algo como “Uma outra ferramenta para reconhecimento de linguagem” . 

A definição como comprovaremos mais tarde não é completa, pois  ANTLR não é só uma ferramenta mas também uma biblioteca, uma quase completa solução em si mesma, a fim de tornar a implementação de uma linguagem uma tarefa muito mais simples do que normalmente seria.

Através de ANTLR seremos capazes de converter a gramática que define uma determinada linguagem e gerar todas as estruturas de dados e classes que implementam seu  analisador léxico e o parser desta nova linguagem.

Vantagens

ANTLR é opensource e cria parsers para diversas linguagens, tais como : java, C++, C# e Python .

Erros em gramáticas do YACC são muito mais difíceis de se entender do que os do ANTLR.

Possui uma IDE exclusivamente para especificação da gramática e geração dos Parsers.  A IDE chama-se  ANTLRWorks e está atualmente na versão 2.1,  desenvolvida sobre a plataforma netbeans. Ainda precisa amadurecer um pouco mais, no entanto já facilita enormemente a definição da gramática, ainda mais por apresentar os erros desta durante a edição. Abaixo vemos a imagem da IDE com trechos da  gramática que representa a linguagem C (para ANTLR 3.x).  Uma das características interessantes da IDE pode ser vista na área à direita que mostra a representação gráfica de um elemento de sua  sintaxe, facilidade que é muito útil para inspecionarmos as regras de uma  gramática em desenvolvimento ou para gerarmos sua documentação.

ANTLRWorks 2.1

ANTLRWorks 2.1

ANTLR gera parsers que podem ser estendidos e utilizam os  padrões visitor e observer(listener) para facilitar o “caminhar” através código fonte de uma nova linguagem. Veremos como este mecanismo funciona nos próximos posts .

Na realidade, ao processar-se uma gramática, é construído um reconhecedor de uma determinada linguagem, portanto ANTLR presta-se a diversos objetivos além da construção apenas de compiladores, tais como :  tradutores, validadores, interpretadores, geradores de documentação etc. Uma das vantagens imediatas sem grandes intervenções de código extra é o reconhecimento de erros de sintaxe, aliás o que pode ser feito utilizando-se também a IDE ANLTRWorks para validar sua gramática (ver menu Run / Run in TestRig).

Gramática

Estes artigos não farão  muitos aprofundamentos sobre a gramática  e nem mesmo como esta é representada internamente através de máquinas de estado e estruturas de dados, no entanto devemos ter um conhecimento, mesmo que rudimentar, porém suficiente para compreender como uma linguagem é definida, logo o próximo artigo tratará exclusivamente deste tema.

Criador

ANTLR foi desenvolvida por Terence Parr um  professor super figuraça do curso de Ciência da Computação da Universidade de São Francisco . Caso assistam a alguns de seus vídeos explanatórios, entenderão o porquê .

Referências

  1. http://www.antlr.org/
  2. http://tunnelvisionlabs.com/products/demo/antlrworks
  3. youtube – ANTLR v4 with Terence Parr

continue lendo (parte 2) … 

2412 Total 5 Visualizações

About 

System development consultant
He graduated from UFF in Software development
A lot of experience in development process and management .
International expertise : USA (1 yr) and Italy (3 yrs) where He played as system team leader .
Fluently in italian and english.
He Lives now in Rio de Janeiro, Brazil

    Find more about me on:
  • googleplus
,