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

Tabla de símbolos en C# y su interacción con el analizador léxico




Enviado por FRANCISCO RIOS ACOSTA



Partes: 1, 2


    Monografias.com

    Ing. Francisco Ríos Acosta
    Tabla de símbolos en C# y su interacción con el analizador léxico.
    Instituto Tecnológico de la Laguna, a 15 de septiembre del 2008.
    pag. 1 de 26
    Tabla de símbolos en C# y su interacción con el analizador léxico.

    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 la implementación de una tabla de símbolos en C#. Generalmente la explicación en
    clase de este tema, conlleva una buena cantidad de tiempo que podemos reducir, si empleamos un buen
    material donde las especificaciones de la tabla, estén previamente establecidas de manera clara. Un análisis
    de los atributos que almacena cada elemento de la tabla de símbolos, requiere de una definición clara acerca
    de lo que queremos almacenar y recuperar. Este trabajo propone una clase denominada TablaSimbolos con
    atributos y métodos que permitan interactuar con las 3 etapas de análisis de un compilador : análisis léxico,
    análisis sintáctico y análisis semántico. Como ejemplo, se construye una aplicación que analiza léxicamente
    una entrada usando un objeto oAnaLex perteneciente a la clase Lexico propuesta por R.A. Francisco, que
    interactúa con un objeto de la clase TablaSimbolos instalando identificadores, números y cadenas. La
    implementación de la tabla de símbolos se ha hecho de acuerdo a la teoría expresada en el libro del “dragón”
    Aho, Sethi y Ullman, asi como del libro de Tremblay y Sorenson, ambos libros tratantes del tema de
    Compiladores.

    Monografias.com

    Tabla de símbolos en C# y su interacción con el analizador léxico.
    Instituto Tecnológico de la Laguna, a 15 de septiembre del 2008.
    pag. 3 de 26
    Ing. Francisco Ríos Acosta
    1
    Introducción.
    Existen varias maneras de implementar una tabla de símbolos. En este trabajo trataremos una de ellas : abstraer la tabla de
    símbolos como un objeto. Nos basaremos en la teoría expuesta en el libro del “dragón” y del Tremblay para realizar la
    construcción de la tabla de símbolos. Estableceremos la propuesta de la clase TablaSimbolos de manera que podamos
    definir un objeto oTablaSimb, que interactúe en una aplicación Windows C# con un objeto oAnaLex –analizador léxico-.
    El análisis léxico lo haremos sobre sentencias de entrada cuya sintaxis está definida por una gramática de contexto libre no
    ambigua. Al término del trabajo tendremos construída una aplicación Windows C# que : inicialice la tabla de símbolos, que
    permita que el analizador léxico instale identificadores, números y cadenas en ella, y que visualice a los elementos de la
    tabla mostrando los atributos almacenados en la etapa de análisis léxico.

    Los pasos que seguiremos en las secciones siguientes son :






    2
    Modelo conceptual de una tabla de símbolos.
    Lenguaje de ejemplo y la gramática de contexto libre que denota su sintaxis.
    Análizador léxico para la gramática.
    Análisis de los atributos de los objetos que se almacenan en la tabla de símbolos.
    Clase TablaSimbolos.
    Instalación de identificadores, cadenas y números.
    Visualización de la tabla de símbolos.

    Modelo conceptual de la tabla de símbolos.
    Básicamente la tabla de símbolos es un arreglo de listas enlazadas. Inicialmente las listas enlazadas deberán estar vacias o
    sea que la referencia de su cabecera tiene el valor de null.
    0
    null
    1
    null
    2
    null
    3
    null
    4
    null
    5

    6

    n-3

    n-2

    n-1
    null

    null

    null

    null

    null

    Fig. No. 2.1 Modelo conceptual de la tabla de símbolos para desmenuzamiento de n entradas.

    Monografias.com

    Ing. Francisco Ríos Acosta
    Tabla de símbolos en C# y su interacción con el analizador léxico.
    Instituto Tecnológico de la Laguna, a 15 de septiembre del 2008.
    pag. 4 de 26
    Cada nodo en cada lista enlazada representa un símbolo instalado en la tabla por cualquier etapa de la fase de análisis, sea
    léxico, sintáctico o semántico. Esta fuera del alcance de estos apuntes, la fase de síntesis.
    La inserción de los elementos en la tabla de símbolos requiere de definir una función de desmenuzamiento –hashing-. Cada
    símbolo antes de insertarlo en la lista enlazada correspondiente, debe ser procesado por esta función que será la encargada
    de decidir hacia que lista enlazada debe instalarse el símbolo en la entrada.
    De acuerdo a lo anterior, si deseamos construir una tabla de símbolos sigamos las etapas que a continuación listamos :




    3
    Definir la función de desmenuzamiento.
    Definir la clase Lista.
    Definir la clase Nodo.
    Definir la clase TipoElem.
    Definir la clase TablaSimbolos.

    Lenguaje de ejemplo y su gramática de contexto libre que lo denota.
    Durante algunos semestres hemos propuesto un lenguaje para el estudio de las diferentes fases de análisis, consistente de las
    instrucciones :





    Declaración de constantes
    Declaración de variables
    Asignación
    Entrada
    Salida
    Las reglas de sintaxis para incluir las sentencias en este lenguaje de programación propuesto son :




    El cuerpo del programa es encerrado entre 2 sentencias : inicio y fin.
    La declaración de constantes debe ir en primer lugar antes de las declaraciones de variables, sentencias de asignación,
    de entrada y de salida. Puede no incluirse la declaración de constantes.
    La declaración de variables es la segunda en orden de inserción. Si existe una declaración de constantes, la declaración
    de variables debe incluirse después de la de constantes. Puede no existir una declaración de variables.
    Después de haber incluido la declaración de constantes y de variables, podemos incluir s

    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