Es un sistema de parsificacin, diseado para soportar ltiples enguajes de programacin programacin. Estructura. Grammar, builder, compiled grammar tables, engine.
Este sistema usa un autmata finito determinstico (AFD) para el anlisis lxico y el algoritmo LALR para la parsificacin. Ambos algoritmos son mquinas de estado que usan tablas para determinar acciones. GP est diseado en torno al principio de separar lgicamente el proceso de generacin de las tablas de parsificacin de LALR y de AFD de la implementacin actual de sus propios algoritmos. Esto permite que los parsificadores sean implementados en diferentes lenguajes de programacin, manteniendo la misma gramtica y el proceso de desarrollo. El sistema GP consiste tres (3) componentes lgicos: constructor (builder), motor (engine) y tabla de gramtica compilada (compiled grammar table); sta ltima es un tipo de archivo que funciona como un intermediario entre los primeros dos.
Constructor (builder)
Es el componente primario y la aplicacin principal del sistema. Es utilizado para analizar la sintaxis de un lenguaje (especificado en una gramtica) y construye las tablas de LALR y AFD. Durante este proceso cualesquiera ambiguedades en la gramtica sern reportados como un conflicto. Una vez que las tablas de parsificacin de LALR y AFD son construidos exitsamente, el constructor puede guardar estos datos en el archivo de la Tabla de la Gramtica Compilada. Esto permite que la informacin sea reabierta despus por el constructor o usado en uno de los motores motores. Generalmente, el componente constructor est disponible para sistemas operativos Windows de 32 bits.
Licencia libre. Estado de navegacin. Prueba integrada. Asistente de prueba de mltiples archivos.
sintaxis hiper-enlazados). Generador de esqueletos de programas usando plantillas. Exporta gramticas a YACC. Exporta tablas a XML o textos formateados. Compilada
Motor
A diferencia del constructor, que es dependiente de
una plataforma nica, el componente motor est escrito para un lenguaje de programacin especfico y/o plataforma de desarrollo. El motor implementa los algoritmos de LALR y de AFD. Puesto que diferentes lenguajes de programacin usan diversas maneras de disear programas, cada implementacin del motor variar. Una implementacin del motor escrito para Visual Basic 6 diferir enormente p que uno escrito para ANSI C.
Cualquier lenguaje puede ser implementado traduciendo el cdigo fuente existente. GP soporta los siguientes lenguajes:
Ensamblador Intel x86 ANSI C C# Java Pascal Python Visual Basic Visual Basic .NET Visual C++
Gramticas
Las gramticas de GP se basan en la notacin BNF, expresiones regulares y notacin de conjuntos conjuntos.
organizar una secuencia de tokens basado en las reglas de un lenguaje formal. As como el analizador sintctico acepta una secuencia de tokens, determina (basado en esta informacin) cuando las reglas gramaticales respectiva estn completas y verifica si la secuencia de de tokens es sintcticamente correcto. Tpicamente, BNF es usado para definir la gramtica de libre contexto que utilice un lenguaje. Todo el lenguaje es representado a travs de un smbolo no terminal llamado smbolo inicial. A menudo, la informacin sintctica es almacenada en un rbol de derivacin.
Parsificacin LR
La parsificacin izquierda-derecha (LR) usa tablas
para determinar cuando una regla est completa y cuando los tokens adicionales deben ser ledos de la fuente de cadenas. Identifica subcadenas que pueden ser reducidas a smbolos no terminales.
Parsificacin LALR
Es una variante de la tcnica de parsificacin: LR;
usada por la mayora de los analizadores sintcticos. Combina configuracin de conjuntos; limitando el tamao de las tablas de parsificacin. De all que, el algoritmo asociado a LALR es ligeramente menos poderoso que el de LR, pero es ms prctico.