Monografias.com > Computación > Software
Descargar Imprimir Comentar Ver trabajos relacionados

Software didáctico para la construcción de analizadores sintácticos descendentes no recursivos predictivos




Enviado por FRANCISCO RIOS ACOSTA



Partes: 1, 2


    Monografias.com

    Software didáctico para la construcción de analizadores sintacticos descendentes no recursivos predictivos.
    Ing. Francisco Ríos Acosta
    Instituto Tecnológico de la Laguna, a 25 de agosto del 2008.
    pag. 1 de 44
    Software didáctico para la construcción de analizadores sintacticos descendentes
    no recursivos predictivos.

    FRANCISCO RÍOS ACOSTA
    Instituto Tecnológico de la Laguna
    Blvd. Revolución y calzada Cuauhtémoc s/n
    Colonia centro
    Torreón, Coah; México
    Contacto : friosam@prodigy.net.mx

    Resúmen. Se presenta un software didáctico denominado RD-NRP cuyo objetivo es ayudar en el proceso de
    enseñanza-aprendizaje del tema “análisis sintactico” dentro del curso de Programación de Sistemas. Además,
    permite la generación de código de una clase denominada SintDescNRP que es usada para definir objetos
    cuyo fin es analizar sintacticamente un grupo de sentencias. El software ofrece las facilidades : (1) Ingreso de
    una gramática de contexto libre no ambigua, (2) Transformación de la gramática : eliminación de la
    recursividad a la izquierda y factorización a la izquierda, (3) Obtención de los conjuntos : PRIMEROS y
    SIGUIENTES, (4) Construcción de la tabla M de reconocimiento, (5) Simulación del reconocedor
    descendente, y (6) generación de código en C# para la clase SintDescNRP. La teoría de base para la
    construcción del software fue tomada del libro “del dragón” de Aho, Sethi y Ullman. El trabajo termina
    mostrando la construcción de un analizador sintactico no recursivo predictivo escrito en C#, que usa el
    código producido por los sofware’s didácticos SP-PS1 y RD-NRP.

    Monografias.com

    Software didáctico para la construcción de analizadores sintacticos descendentes no recursivos predictivos.
    Instituto Tecnológico de la Laguna, a 25 de agosto del 2008.
    pag. 3 de 44
    Ing. Francisco Ríos Acosta
    1
    Introducción.
    El software didáctico RD-NRP es un ejecutable en ambiente Windows, escrito en C# de Visual Studio 2005 de MicroSoft.
    Su uso se suscribe a la materia de Programación de Sistemas en su tema Análisis Sintactico-Reconocedores Descendentes.
    El usuario de este software tiene acceso a las siguientes utilidades :






    Ingreso de una gramática de contexto libre no ambigua.
    Transformación de la gramática eliminando la recursividad a la izquierda E.R.I., haciendo no recursivo al reconocedor.
    Transformación de la gramática factorizando a la izquierda, haciendo predictivo al reconocedor.
    Obtención del conjunto PRIMERO para cada no terminal de la gramática transformada.
    Obtención del conjunto SIGUIENTE para cada no terminal de la gramática transformada.
    Construcción de la tabla M de reconocimiento, usada por el algoritmo del reconocedor descendente no recursivo
    predictivo.
    Simulación del reconocimiento de una sentencia, visualizando la derivación a la izquierda producida por el reconocedor
    descendente.
    Generación del código para la clase SintDescNRP, que permite definir objetos dentro de una aplicación C#, que
    analizan sintacticamente un grupo de sentencias que cumplen con la sintaxis descrita por una gramática de contexto
    libre.

    Durante la exposición de este trabajo, veremos cómo se usa, la utilidad del RD-NRP, además de terminar explicando la
    construcción de un anañizador sintactico descendente no recursivo predictivo, que utiliza el código generado por este
    software didáctico.
    2
    Ingreso de una gramática de contexto libre no ambigua.
    Esta característica representa el punto de inicio para la construcción del reconocedor descendente. Proporciona al usuario las
    funciones :







    Ingreso de la gramática desagrupada.
    Configuración del número de yes.
    Inserción de renglones para una edición mas amigable.
    Limpieza o inicialización de la rejilla de ingreso de la gramática, para iniciar en 0 producciones.
    Carga de una gramática previamente tecleada y salvada.
    Salvar la gramática que se ha tecleado en la rejilla de ingreso.
    Análisis de la gramática, visualizando sus producciones, los símbolos no terminales y los terminales. Si hay errores son
    comunicados al usuario, permaneciendo la gramática en un estado denominado DEFICIENTE. Si no existieron errores
    en el análisis, la gramática tiene un estado OK.

    La figura #2.1 muestra la interfase para una gramática de asignación, analizada y con estado OK. El resultado del análisis
    indica 10 producciones, 10 símbolos terminales y 4 símbolos no terminales. Las producciones agrupadas de la gramática
    son :

    A -> id = E ;
    E -> E + T

    T -> T * F
    |

    |
    E – T

    T / F
    |

    |
    T

    F
    F -> id
    |
    num
    |
    ( E )
    Para llegar a la interfase mostrada en la figura 2.1 debemos ingresar a cada producción de la gramática utilizando un renglón
    de la rejilla de entrada, para cada componente de la producción. Es decir, primero ingresamos al miembro izquierdo de la
    producción que será invariablemente un no terminal, debido a que manejamos sólo gramáticas de contexto libre. Los
    símbolos no terminales las denotamos con una letra mayúscula. En la columna siguiente debemos ingresar el número de yes
    de la producción. Las Y’s son los símbolos terminales o no terminales que conforman al miembro derecho de la producción.
    Por último debemos ingresar a cada Y del miembro derecho de la producción : Y1, Y2, Y3, …, Yn.

    La figura #2.2 muestra la interfase que contiene el estado de la gramática después de haber ingresado a cada producción de
    la gramática.

    Monografias.com

    Software didáctico para la construcción de analizadores sintacticos descendentes no recursivos predictivos.
    Ing. Francisco Ríos Acosta
    Instituto Tecnológico de la Laguna, a 25 de agosto del 2008.
    pag. 4 de 44
    Fig. No. 2.1 Interfase de

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter