En informática , SYNTAX es un sistema que se utiliza para generar analizadores sintácticos y léxicos (analizadores sintácticos ) (tanto deterministas como no deterministas) para todo tipo de gramáticas libres de contexto (CFG), así como algunas clases de gramáticas contextuales. [ cita requerida ] Ha sido desarrollado en INRIA ( Francia ) durante varias décadas, principalmente por Pierre Boullier, pero se ha convertido en software libre solo desde 2007. SYNTAX se distribuye bajo la licencia CeCILL . [ cita requerida ]
Desarrollador (es) | INRIA |
---|---|
Tipo | Generador |
Licencia | CeCILL |
Sitio web | sintaxis |
Análisis sin contexto
SYNTAX maneja la mayoría de las clases de gramáticas deterministas (no ambiguas) ( LR , LALR , RLR, así como gramáticas generales libres de contexto. La versión determinista se ha utilizado en contextos operativos (p. Ej., Ada [1] ) y actualmente se utiliza tanto en dominio de compilación . [2] Las características no deterministas incluyen un generador de analizador Earley utilizado para el procesamiento del lenguaje natural . [3] Los analizadores generados por SYNTAX incluyen poderosos mecanismos de recuperación de errores y permiten la ejecución de acciones semánticas y evaluación de atributos en el árbol abstracto o en el bosque de análisis compartido.
Análisis contextual
La versión actual de SYNTAX (versión 6.0 beta) incluye también generadores de analizadores sintácticos para otros formalismos, que se utilizan para el procesamiento del lenguaje natural y la bioinformática. Estos formalismos son formalismos sensibles al contexto ( TAG , RCG o formalismos que se basan en gramáticas libres de contexto y se amplían gracias a la evaluación de atributos, en particular para el procesamiento del lenguaje natural ( LFG ).
Error de recuperación
Una buena característica de SYNTAX (en comparación con Lex / Yacc ) es su algoritmo incorporado [4] para recuperarse automáticamente de errores léxicos y sintácticos, eliminando caracteres o tokens adicionales, insertando caracteres o tokens faltantes, permutando caracteres o tokens, etc. Este algoritmo tiene un comportamiento predeterminado que se puede modificar proporcionando un conjunto personalizado de reglas de recuperación adaptadas al lenguaje para el que se construyen el analizador léxico y el analizador sintáctico.
Notas
- ^ El primer traductor-herramienta para el lenguaje ADA ha sido desarrollado con SYNTAX por Pierre Boullier y otros, como se recuerda en esta página sobre la historia de ADA . Véase también Pierre Boullier y Knut Ripken. Construyendo un compilador Ada siguiendo métodos de metacompilación. En Séminaires Langages et Traducteurs 1978-1981, páginas 99-140. INRIA, Rocquencourt, Francia, 1981.
- ^ Por ejemplo, por elequipo VASY en INRIA , en particular para el desarrollo de CADP y Traian .
- ^ Por ejemplo, en el analizador sintáctico SxLFG, cuya primera versión se describe en este documento .
- ^ Pierre Boullier y Martin Jourdan. Un nuevo esquema de reparación y recuperación de errores para análisis léxico y sintáctico . Science of Computer Programming 9 (3): 271-286 (1987).