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.
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ê .
Pingback: Ivon Gregory()