Herramientas tradicionales
Lex/Yacc, Pclex, Pcyacc, Bison, Flex.
Ventajas: Generan analizadores eficientes, incluso más que los que pudiéramos hacer de manera manual.
- Los analizadores ascendentes reconocen la mayor parte de los lenguajes
Desventajas: Las acciones semánticas asociadas con las producciones de los no terminales de las gramáticas son difíciles de depurar
- Mezcla las especificaciones sintácticas con las semánticas
Herramientas de nueva generación
ANTLR
- Se considera el lex/yacc del nuevo milenio.
- Genera árboles sintácticos descendentes .
- Escrito íntegramente en JAVA.
- Genera código en JAVA o C++.
Ventajas: Buena integración de los analizadores léxicos y sintácticos
- El código generado por ANTLR es mas fácil de entender y depurar que el YACC.
- Las especificaciones gramaticales de ANTLR permiten la notación BNF y generan árboles de análisis sintáctico.
Desventajas: Genera analizadores menos eficientes que los generados por YACC.
- Los ficheros de especificación de ANTLR son muy complejas.
- El proceso de depurado consta de las siguientes fases:
1) Escribir el código de acciones.
2) Compilar el fichero de especificaciones
3) Compilar y ejecutar el programa generado y Localizar errores del programa
4) Corregir errores en el fichero de especificaciones
JAVACC
- Inicialmente se llamo JACK.
- Similar al ANTLR.
- Analizador ascendente.
Ventajas:
- Buena integración y los analizadores léxicos y sintáctico.
- Genera analizadores sintácticos descendentes basados en la gramática.
- Incluye la herramienta JJTREE para generar árboles sintácticos.
Desventajas:
- Las mismas que ANTLR
Otras herramientas
BYACC/JAVA
- Extensión de YACC para generar código JAVA en vez de C/C++.
- Fichero de especificaciones igual que YACC
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.
JELL
- Es un generador de analizadores sintácticos que genera analizadores descendentes a partir de gramáticas LL.
Kits para la construcción de compiladores
COKTAIL
Conjunto de herramientas para construir compiladores
- REXàgenerador de analizadores léxicos.
- LALRàgenerador de analizadores sintácticos.
- ELLàgenerador de analizadores sintácticos.
- ASTàgenerador de árboles sintácticos.
- AGàpermite 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.
PCCT
- Escrito inicialmente en C++ para generar compiladores en C++.
- Consta de 3 herramientas:
· ANTLRàgenerador de analizadores de sintácticos
· DLGàgenerador de analizadores léxicos
· SORCERERàgenerador de árboles sintácticos
Ala gran esta informacion me a servido de mucha ayuda, y disculpen mi pregunta pero todas esas son las unicas herramientas que hay para la construccion de compiladores?? o hay mas, esq soy estudiante de ingenieria en sistemas, me gustaria mas informacion acerca de esto, mi correo es nivek-5@hotmail.com agreguenme o publiquen sus correos
ResponderEliminar