Vous êtes sur la page 1sur 3

Mayo 2012

GOLDPARSER
GoldParser para realizar el anlisis lxico emplea autmatas finitos determinstico (DFA) y anticipado analizador LR (LALR). Los dos algoritmos mencionados son maquinas de estados los cuales emplean tablas para determinar acciones. Se construyo basndose en el principio lgico que separa la generacin de LALR y DFA tablas de anlisis sintctico de la aplicacin efectiva de los mismos algoritmos de anlisis sintctico. Con ello se logra que los analizadores que se emplearan en diferentes lenguajes de programacin empleen las mismas gramticas y el proceso de desarrollo. Soporta mltiples lenguajes de programacin. Esta herramienta esta compuesta por tres componentes lgicos: Constructor: Componente primario y el principal de la aplicacin, se emplea para analizar la sintaxis de un lenguaje y la construccin de tablas de LALR Y DFA. Si las tablas se construyen con xito, se almacenan los datos en un archivo de gramtica cuadro compilado. Se informa de cualquier ambigedad en la gramtica. Motor: Esta escrito para un lenguaje de programacin especifico, este implementa los algoritmos LALR y DFA. La implementacin del motor puede variar en diferentes lenguajes dado el enfoque del diseo de programas. Algunos ejemplos de Motores: Pascal, Java, C++, etc. Cuadro compilado Gramtica: Almacena datos de la tabla creada en el constructor. Las gramticas de esta herramienta se basan en Backus-Naur, las expresiones regulares, y la notacin de conjuntos.

YACC
Yacc herramienta de software libre que genera un analizador sintctico el cual se basa en una gramtica analtica cuya escritura se parece a una gramtica libre de contexto (Tipo2). El analizador sintctico requiere de un analizador lxico (casi siempre Lex o Flex, tambin de software libre). El proceso de creacin consiste en convertir una convierte una gramtica Tipo2 y el cdigo de la traduccin a un conjunto de tablas de una LR (1) analizador y traductor; acepta ambigedad en la gramtica.

Mayo 2012

Esta herramienta esta compuesta 3 secciones: Definiciones: Funcin principal es declarar smbolos terminales de la gramtica. Todo lo que no sea terminal se considerara como no terminal. Reglas: Contiene a la gramtica en si, esta seccin es la nica obligatoria y no puede estar vaca. Adems, toda regla debe incluir una accin en C que se ejecutar en cuanto Yacc consiga encontrar los componentes del smbolo. Rutinas: Definir funciones. Yacc genera una funcin llamada yyparse() que contiene el analizador sintctico. Esta funcin se comporta como una mquina de estados cuya misin es intentar reducir todo el fichero de entrada al smbolo inicial de la gramtica. Si esto se consigue el analizador sintctico regresara sin error, de lo contrario mostrara error.

CUP
Herramienta para la construccin de analizadores sintctico el cual recibe un archivo de entrada y la salida genera parsers escritos en java, los parsers que se obtienen utilizan el mtodo de anlisis descendente LALR. Ofrece la mayora de las de Yacc. La Estructura del archivo de entrada es la siguiente: 1. Especificaciones de importacin y empaquetamiento. La primera parte del fichero se utiliza para incluir informacin que define cmo se generar el analizador y el cdigo de importacin de la librera CUP. 2. Cdigo de usuario. Se puede ubicar una serie de declaraciones opcionales que permiten incluir cdigo en el analizador generado. 3. Lista de smbolos. La segunda parte de la especificacin declara los terminales y no terminales utilizados en la gramtica y, opcionalmente, especifica el tipo (clase-objeto) de cada uno de ellos. Si se omite el tipo, al terminal o no-terminal correspondiente no se le pueden asignar valores. 4. Declaraciones de precedencia. La tercera parte del fichero define la precedencia y asociatividad de los terminales. 5. Gramtica: La gramtica se define en notacin BNF.

Mayo 2012

CUADRO COMPARATIVO
GOLDPARSER Lenguaje de Programacin Anlisis Lxico Mltiples lenguajes Realiza el anlisis con DFA Y LALR. Separa la generacin de LALR y DFA tablas de anlisis sintctico de la aplicacin efectiva de los mismos algoritmos de anlisis sintctico. YACC Lenguaje C Emplea una herramienta (Lex, Flex, etc.) CUP Lenguaje JAVA Emplea una herramienta (Lex, Flex, etc.)

Anlisis sintctico

Convierte una gramtica Mtodo de anlisis Tipo2 y el cdigo de descendente LALR traduccin a un conjunto de tablas de una LR (1). Funcin yyparser() contiene el analizador sintctico.

Gramtica

Libres de Contexto (Backus-Naur) Gramtica Analtica Libres de Contexto (BNF) (Escritura parecida a Tipo2)

Estructura

3 Componentes lgicos: Constructor, Motor y Cuadro compilado gramtica.

3 Secciones: Definiciones, Reglas y Rutinas.

Archivo de entrada con estructura: 1.Importacion y equipamiento 2.Codigo 3. Smbolos 4.Presedencia 5. Gramtica.

Vous aimerez peut-être aussi