ESTA UNIDAD TRATA SOBRE LAS DIFERENTES HERRAMIENTAS CON LAS QUE SE CUENTA HOY EN DIA PARA PODER CREAR NUESTRO PROPIO COMPILADOR, CONOCIENDO CADA UNA DE LAS HERRAMIENTAS QUE A CONTINUCACION SE DESCRIBEN...
HERRAMIENTAS TRADICIONALES
HERRAMIENTAS DE NUEVA GENERACION
OTRAS HERRAMIENTAS
KIT PARA LA CONSTRUCCION DE COMPILADORES
HERRAMIENTAS TRADICIONALES
- Lex/Yacc: Sirven, respectivamente, para generar analizadores lexicográficos y analizadores sintácticos para su aprovechamiento como partes de los compiladores de los lenguajes de programación; estos usos de Lex y Yacc no son los únicos, aunque sí son los que aquí se consi¬deran principalmente.
Para entender cabalmente el funcionamiento de los generadores de analizadores, hay que co¬nocer la teoría de compiladores relacionada con las tareas de análisis de lenguajes.
Cuando se emplea el término Lex, se mencionan dos posibles significados:
a) una notación para especificar las características lexicográficas de un lenguaje de programación,
b) un traductor de especificaciones lexicográficas.
- Pclex: Permite mostrar cómo, utilizando expresiones regulares, se puede combinar la especificación
de patrones con acciones, por ejemplo, haciendo entradas de una tabla de símbolos cuya ejecución se pueda pedir a un analizador léxico.
- Flex: Es un marco de trabajo de código abierto gratuito y altamente productivo para la creación de aplicaciones web expresivas que se implantan coherentemente en exploradores, ordenadores de sobremesa y sistemas operativos
HERRAMIENTAS DE NUEVA GENERACION
ANTLR:(ANother Tool for Language Recognition – otra herramienta para reconocimiento de lenguajes) es una herramienta creada principalmente por Terence Parr, 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).
- Se considera el lex/yacc del nuevo milenio.
- Genera árboles sintácticos descendentes .
- Escrito íntegramente en JAVA.
- Genera código en JAVA o C++.
JAVACC: (Java Compiler Compiler) es un generador de analizadores sintácticos de código abierto para el lenguaje de programación Java. JavaCC es similar a Yacc en que genera un parser para una gramática presentada en notación BNF, con la diferencia de que la salida es en código Java. A diferencia de Yacc, JavaCC genera analizadores descendentes (top-down), lo que lo limita a la clase de gramáticas LL(K) (en particular, la recursión desde izquierda no se puede usar).
- Inicialmente se llamo JACK.
- Similar al ANTLR.
- Analizador ascendente.
OTRAS HERRAMIENTAS
BYACC/JAVA
- Extensión de YACC para generar código JAVA en vez de C/C++.
- Fichero de especificaciones igual que YACC
- Código y declaraciones de lenguaje escritos en JAVA.
COCO/JAVA
- Generados de compiladores que a partir de la descripción del lenguaje mediante una gramática LL genera un analizador sintáctico y un analizador léxico para dicho lenguaje.
CUP
- Versión LEX/YACC para JAVA (su forma de trabajo es análoga).
JACCIE
- JAVA BASED COMPILER.-Compiler in an Interactive Environment.
- Herramienta educativa que se puede utilizar para visualizar las técnicas de compilación.
- Dos principales componentes: un generador de analizadores léxicos y una variedad de generadores de generadores sintácticos.
JELL
- Es un generador de analizadores sintácticos que genera analizadores descendentes a partir de gramáticas LL.
KIT PARA LA CONSTRUCCION DE COMPILADORES
COKTAIL
Conjunto de herramientas para construir compiladores
- REXgenerador de analizadores léxicos.
- LALRgenerador de analizadores sintácticos.
- ELLgenerador de analizadores sintácticos.
- ASTgenerador de árboles sintácticos.
- AGpermite procesar gramáticas atribuidas.
ELI
- Combina una variedad de herramientas estándar para implementar potentes estrategias en la construcción de compiladores.
- Se pueden generar automáticamente implementaciones de lenguajes completos a partir de las especificaciones de la aplicación.
- Contiene librerías de especificaciones reusables.
PCCT
- Escrito inicialmente en C++ para generar compiladores en C++.
- Portado a JAVA y llamado ANTLR.XX
- Consta de 3 herramientas:
• ANTLRgenerador de analizadores de sintácticos
• DLGgenerador de analizadores léxicos
• SORCERERgenerador de árboles sintácticos
Muchas gracias por la información.
ResponderEliminar