GOLD PARSER (GP

)
Es un sistema de parsificación, diseñado para soportar últiples enguajes de programación programación. Estructura. Grammar, builder, compiled grammar tables, engine.

DISEÑO DEL GOLD PARSER

 Este sistema usa un autómata finito determinístico (AFD) para el análisis léxico y el algoritmo LALR para la parsificación.  Ambos algoritmos son máquinas de estado que usan tablas para determinar acciones.  GP está diseñado en torno al principio de separar lógicamente el proceso de generación de las tablas de parsificación de LALR y de AFD de la implementación actual de sus propios algoritmos.  Esto permite que los parsificadores sean implementados en diferentes lenguajes de programación, manteniendo la misma gramática y el proceso de desarrollo.  El sistema GP consiste tres (3) componentes lógicos: constructor (builder), motor (engine) y tabla de gramática 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 aplicación principal del sistema. Es utilizado para analizar la sintaxis de un lenguaje (especificado en una gramática) y construye las tablas de LALR y AFD. Durante este proceso cualesquiera ambiguedades en la gramática serán reportados como un conflicto.  Una vez que las tablas de parsificación de LALR y AFD son construidos exitósamente, el constructor puede guardar estos datos en el archivo de la Tabla de la Gramática Compilada.  Esto permite que la información sea reabierta después por el constructor o usado en uno de los motores motores.  Generalmente, el componente constructor está disponible para sistemas operativos Windows de 32 bits.

Características del constructor
   

Licencia libre. Estado de navegación. Prueba integrada. Asistente de prueba de múltiples archivos.

 Una implementación del motor escrito para Visual Basic 6 diferirá enormente p que uno escrito para ANSI C. Motor  A diferencia del constructor. que es dependiente de una plataforma única.  El motor implementa los algoritmos de LALR y de AFD.  Exporta tablas a XML o textos formateados. el componente motor está escrito para un lenguaje de programación específico y/o plataforma de desarrollo.  Puesto que diferentes lenguajes de programación usan diversas maneras de diseñar programas. . Compilada Es usado para almacenar la información de la tabla generada por el constructor constructor. Cualquier lenguaje puede ser implementado traduciendo el código fuente existente.NET  Visual C++ Gramáticas Las gramáticas de GP se basan en la notación BNF.  GP soporta los siguientes lenguajes: Ensamblador Intel x86  ANSI C  C#  Java  Pascal  Python  Visual Basic  Visual Basic .  Exporta gramáticas a YACC.  Generador de esqueletos de programas usando plantillas. cada implementación del motor variará. expresiones regulares y notación de conjuntos conjuntos. Generador de páginas Web (incluyendo diagramas de sintaxis hiper-enlazados).

determina (basado en esta información) cuando las reglas gramaticales respectiva están completas y verifica si la secuencia de  de tokens es sintácticamente correcto. solamente hay un camino para cualquier entrada. ya que tiene un número fijo y conocido de estados y ramas. El algoritmo. Esta parte del motor explora la entrada y determina cuando y si una serie de caracteres puede ser reconocido como un token.Tiene las siguientes propiedades:  Es determinístico. BNF es usado para definir la gramática de libre contexto que utilice un lenguaje. .  La mayoría de los motores de parsificación usan una AFD para implementar el generador de tokens. la información sintáctica es almacenada en un árbol de derivación.  Identifica subcadenas que pueden ser reducidas a símbolos no terminales.  El grafo es un autómata. Lookahead Left to Right Parsing (LALR)  La meta principal de un parsificador (parser) es organizar una secuencia de tokens basado en las reglas de un lenguaje formal. La transición de un estado a otro está completamente determinado por la entrada. sigue la rama correcta basada en la entrada. Todo el lenguaje es representado a través de un símbolo no terminal llamado “símbolo inicial”.Autómata Finito Determinístico(AFD) Es un diagrama de transición de estados que se usa para reconocer patrones.  El grafo es finito.  Asó como el analizador sintáctico acepta una secuencia de tokens.  Típicamente. Parsificación LR  La parsificación izquierda-derecha (LR) usa tablas para determinar cuando una regla está completa y cuando los tokens adicionales deben ser leídos de la fuente de cadenas. . meramente. A menudo. porque de cualquier nodo (estado) dado.

 Combina configuración de conjuntos. limitando el tamaño de las tablas de parsificación. pero es más práctico. . usada por la mayoría de los analizadores sintácticos. De allí que. el algoritmo asociado a LALR es ligeramente menos poderoso que el de LR. Parsificación LALR  Es una variante de la técnica de parsificación: LR. Todas las decisiones están basadas en el contenido de las tablas de parsificación.

Sign up to vote on this title
UsefulNot useful