Está en la página 1de 3

Lenguajes y Autmatas I Herramientas lxicas para compiladores.

Daniel Vega Ceja u10420443


Lex/Yacc Pclex Pcyacc Bison Flex

Ventajas.

Generan analizadores eficientes, incluso ms que los que se pudiera hacer de manera manual. Los analizadores ascendentes reconocen la mayor parte de los lenguajes

Desventajas.

Yacc usa herramientas externas para que le provean los tokens necesarios Las acciones semnticas asociadas con las producciones de los no terminales de las gramticas son difciles de depurar

Yacc no genera rboles de anlisis sintctico Mezcla las especificaciones sintcticas con las semnticas Incrementos en la dificultad del trabajo de depuracin de puesto que los errores que cometen el fichero de especificacin con solo visibles en el analizador generado.

Herramientas de nueva generacin.


ANTLR

Se considera el lex/yacc del nuevo milenio. Genera rboles sintcticos descendentes. Escrito ntegramente en JAVA. Genera cdigo en JAVA o C++.

Ventajas

Buena integracin de los analizadores lxicos y sintcticos

El cdigo generado por ANTLR es ms fcil de entender y depurar que el YACC. Las especificaciones gramaticales de ANTLR permiten la notacin BNF y generan rboles de anlisis sintctico.

Desventajas

Genera analizadores menos eficientes que los generados por YACC. Los ficheros de especificacin de ANTLR son muy complejas. El proceso de depurado consta de las siguientes fases: 1. Escribir el cdigo de acciones. 2. Compilar el fichero de especificaciones 3. Compilar y ejecutar el programa generado 4. Localizar errores del programa 5. Corregir errores en el fichero de especificaciones

JAVACC

Inicialmente se llamo JACK. Similar al ANTLR. Analizador ascendente.

Ventajas

Buena integracin y los analizadores lxicos y sintctico. Genera analizadores sintcticos descendentes basados en la gramtica. Incluye la herramienta JJTREE para generar rboles sintcticos.

Desventajas

Las mismas que ANTLR

Otras herramientas.
BYACC/JAVA

Extensin de YACC para generar cdigo JAVA en vez de C/C++.

Fichero de especificaciones igual que YACC Cdigo y declaraciones de lenguaje escritos en JAVA.

COCO/JAVA

Generados de compiladores que a partir de la descripcin del lenguaje mediante una gramtica LL genera un analizador sintctico y un analizador lxico para dicho lenguaje.

CUP

Versin LEX/YACC para JAVA (su forma de trabajo es anloga).

JACCIE

JAVA BASED COMPILER.-Compiler in an Interactive Environment. Herramienta educativa que se puede utilizar para visualizar las tcnicas de compilacin. Dos principales componentes: un generador de analizadores lxicos y una variedad de generadores de generadores sintcticos.

JELL

Es un generador de analizadores sintcticos que genera analizadores descendentes a partir de gramticas LL.