Uncategorized

Antlr y JavaCC

ANTLR

ANTLR (ANother Tool for Language Recognition) es una herramienta  que opera sobre lenguajes, proporcionando un marco para construir reconocedores (parsers),intérpretes, compiladores y traductores de lenguajes a partir de las descripciones gramaticales de los mismos (conteniendo acciones semánticas a realizarse en varios lenguajes de programación).

ANTLR es un generador de lenguajes, a partir de la especificación de un lenguaje a partir de una gramática podemos:

  • Reconocer si un programa (o palabra) cumple una especificación.
  • Traducir el programa (o palabra) a otro lenguaje.
  • Realizar alguna serie de ordenes.

En resumen proporciona todo lo necesario para el desarrollo de este tipo de sistemas, entre los más importantes:

  • Construcción de analizadores léxicos.
  • Construcción de analizadores sintácticos.
  • Mecanismos de construcción y recorrido de árboles de sintaxis abstracta (AST).
  • Mecanismos de tratamiento de plantillas.
  • Mecanismos de detección y recuperación de errores.

En el momento que, ANTLR apoya la generación de código en las idiomas siguientes: CC++,JavaPythonC#Objetivo-c. ANTLR 3 está bajo cláusula 3 Licencia del DEB.

JAVACC

El generador JavaCC (Java Compiler Compiler) es una herramienta para generar analizadores de lengua­jes; acepta como entrada una especificación de un determinado lenguaje y produce como salida un analiza­dor para ese lenguaje; el analizador generado está escrito en Java. La especificación proporcionada al gene­rador JavaCC puede contemplar distintos aspectos del lenguaje para el que se quiere obtener el analizador:

– Características lexicográficas y sintácticas

es la forma más frecuente de uso del generador; la especificación proporcionada define las característi­cas sintácticas y lexicográficas de un lenguaje y se genera un analizador léxico-sintáctico del lenguaje especificado.

– Características lexicográficas

en la especificación proporcionada al generador sólo se definen características lexicográficas del lengua­je; con el código generado se puede obtener un analizador lexicográfico.

– Características lexicográficas y sintácticas y comprobaciones semánticas

también es posible completar una especificación léxico-sintáctica con la inclusión de código Java com­plementario para que el programa generado (que incorpora adecuadamente ese código auxiliar) pueda hacer un análisis completo (léxico, sintáctico y semántico) del lenguaje especificado.

JavaCC se autoriza debajo de una licencia del DEB.

Características principales:

  • TOP-DOWN : Recursividad descendente capaz de pasar atributos (valores) hacia abajo/arriba
  • Especificacion léxica y gramática en un solo fichero
  • Especificación LL(k) para resolver ambigüedades shift-shift
  • Análisis léxico case-insensitive

http://personales.unican.es/gomezd/Talf/antlr.pdf

http://es.wikipedia.org/wiki/Antlr

http://jorgep.blogspot.com/2010/10/ejemplo-de-antlr-campeonato-de-futbol.html

http://www-assig.fib.upc.es/~sgbd/docs/javacc.pdf

http://www.lpsi.eui.upm.es/webteolp/Documentation/JavaCC.doc

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s