Anda di halaman 1dari 4

GOLD PARSER (GP)

Es un sistema de parsificacin, diseado para soportar ltiples enguajes de programacin programacin. Estructura. Grammar, builder, compiled grammar tables, engine.

DISEO DEL GOLD PARSER

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.

Caractersticas del constructor


Licencia libre. Estado de navegacin. Prueba integrada. Asistente de prueba de mltiples archivos.

Generador de pginas Web (incluyendo diagramas de

sintaxis hiper-enlazados). Generador de esqueletos de programas usando plantillas. Exporta gramticas a YACC. Exporta tablas a XML o textos formateados. Compilada

Es usado para almacenar la informacin de la tabla generada por el constructor constructor.

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.

Autmata Finito Determinstico(AFD)


Es un diagrama de transicin de estados que se usa

para reconocer patrones.

- Tiene las siguientes propiedades:


Es determinstico, porque de cualquier nodo (estado) dado, solamente hay un camino para cualquier entrada. El grafo es finito, ya que tiene un nmero fijo y conocido de estados y ramas. El grafo es un autmata. La transicin de un estado a otro est completamente determinado por la entrada. El algoritmo, meramente, sigue la rama correcta basada en la entrada. La mayora de los motores de parsificacin usan una AFD para implementar el generador de tokens. Esta parte del motor explora la entrada y determina cuando y si una serie de caracteres puede ser reconocido como un token.

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. 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.

Todas las decisiones estn basadas en el contenido

de las tablas de parsificacin.

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.

Anda mungkin juga menyukai