lizeth_giron. Con tecnología de Blogger.
RSS

TAREA_2_1.6 GENERACIONDE TABLA DE SIMBOLOS

INSTITUTO TECNOLOGICO SUPERIOR DE JEREZ



                                                              “LENGUAJES Y AUTOMATAS II”
TAREA_2
“DOCUMENTO: 1.6 GENERACION DE TABLA DE SIMBOLO”

DOCENTE:
ISC. JORGE MIGUEL VAZQUEZ MARQUEZ.

ALUMNA:
LIZETH GUADALUPE GIRON ALVARADO
VILLANUEVA, ZAC. A 15 DE OCTUBRE DEL 2013

Una tabla de símbolos está compuesta por frases o instrucciones de un lenguaje libre de contexto, su principal función es identificar palabras que son seguidas por otras, así como simplificar el análisis sintáctico, las comprobaciones semánticas y la generación de código; están estructuradas por el símbolo y los atributos de este mismo y dependen de la gestión de la memoria, el lenguaje y los parámetros.
Para construir una tabla de símbolos  trabajan en conjunto dos tipos de analizadores en principio el analizador léxico quien es el encargado  de insertar los símbolos detectados a la tabla y crearla y señalar la línea del programa fuente en la que aparece, mientras tanto el analizador semántico es el encargado de añadir los tipos de símbolos para que aparezca en la tabla, si estos son agregados y calificados de una sola pasada se en ese m ismo instante son detectados por ambos analizadores.
También una tabla de símbolos cuenta con operaciones  como INSERTAR,CONSULTAR, MODIFICAR, que son declaradas según el lenguaje  y  se clasifica en dos tipos de variables: Explicitas, son declaraciones para INSERTAR y referencia solo para CONSULTAR; otra variable son las Implícitas, que pueden tener acciones de CONSULTAR, INSERTAR y crear su tablas; la manera de implementación dependerá de la distribución  de la información según las características del lenguaje y sus restricciones y está estructurada por varios campos establecidos de la siguiente manera:
*Campos para el símbolo: contiene un formato fijo que es utilizado cuando tiene un límite de caracteres es decir un área fija para almacenar el símbolo. Un formato variable  aquí es donde se introducen los símbolos de modo consecutivo donde se sustituye el nombre del símbolo por la longitud.
*Campo dirección: se clasifica en dos tipos de lenguaje el SIN estructura de Bloque  su función es asignar las direcciones según el orden en el  que son declaradas, y los Lenguajes CON estructura de Bloques, para cada bloque se asigna una subtabla con dos campos y se utiliza en la fase de generación de código.
*Campo Tipo: se utiliza para el almacenamiento de la memoria y la comporbacion de los tipos y se aplica cuando una variable es implícita o explícita.
*Campo Nº de dimensiones /Nº de parámetros: se trata de una función  o procedimiento, donde el número de argumentos que posee y sus tipos para la reserva de memoria.
*Campos Lista Cruzada de referencia y Puntero de orden: es el traductor con el objeto para facilitar el uso de la tabla de símbolos.
En la organización de la tabla de símbolos(TS), el lenguaje SIN estructura de Bloque  está estructurado por una lista que puede estar ordenada por medio de árboles binarios y tablas de Hash o simplemente no ordenada, mientras tanto los lenguajes CON estructura de Bloque utilizan una tabla para cada Bloque como una PILA + Índice que nos muestra el principio y el final de un bloque además podemos consultar, insertar y modificar los bloques utilizando operaciones como set(inicio del bloque), y  Reset(fin del bloque).

GRAMATICA CON ATRIBUTOS
Es una gramática libre de contexto en donde los símbolos  pueden tener asociados atributos en número finito y las producciones tienen un numero finito de reglas de evaluación de atributos, y sus valores están asociados con un dominio, existen dos tipos de atributo Heredado es cuando b está asociado con algún símbolo dea; mientras que el atributo sintetizado es aquel cuando b está asociado con un símbolo no terminal de A.
Dentro de los atributos sintetizados   se realiza una evaluación que consiste en aplicar reducciones al análisis sintáctico,  de manera ascendente utilizando la reglas según los símbolos gramaticales utilizando las gramáticas S-Atribuidas existe solo cuando todos los atributos de  los símbolos son sintetizados. La evaluación de los atributos se realiza cuando se REDUCE.
Los atributos Heredados dependen de los atributos asociados con los símbolos precedentes en la derivación, a diferencia del anterior atributo este realiza el análisis de manera descendente; por lo tanto es necesario establecer  un orden de evaluación de los atributos.
Una técnica de simplificación de gramáticas es el grafo de dependencia construido por medio de nodos que representan los símbolos y los arcos que representa las reglas semánticas clasificando la evaluación  en árbol de análisis donde cada entrada tiene su árbol sintáctico, Basado en las reglas semánticas que establece el orden de evaluación y dirigido por sintaxis que se utiliza según la estrategia del análisis. Es necesario  contar con diferentes tipos de comprobaciones para cada evaluación algunas de ellas son: Comprobaciones ESTATICAS (son sintácticas y semánticas), Comprobaciones DINAMICAS (se realizan en  tiempo de ejecución), Comprobaciones SEMANTICAS (de tipo, de flujo de control, de unicidad, relación de nombres).
Las expresiones de tipos básicos es nombrada por un nombre, como por ejemplo: boolean, char, integer, real,… en tanto los constructores de tipos están clasificados por matrices (arrays), producto (producto cartesiano), registro; y pueden ser representados mediante un grafo dirigido aciclico (GDA), o por expresiones de tipos  por mapa de bit en donde se parte de los constructores básicos de codificación  como la expresión  puntero, función y array. Tiene como ventaja ahorrar espacio.
La equivalencia estructural de dos expresiones de tipos se da solo si responde a un mismo tipo básico o si se aplica el mismo constructor y se puede determinar aplicando el GDA o el algoritmo de análisis de los constructores. La equivalencia de nombre es  posible cuando las expresiones  son nombradas y si y solo si son idénticas.

Existe también un comprobador de tipos que dispone de la asignación de tipos y puede estar comprobando las expresiones, las sentencias o proposiciones  y las funciones por medio de dos tareas llamadas de asignación y otra de evaluación y comprobación, utiliza tópicos de comprobación o conversión por medio de la coerción implícita (la realiza el compilador) y la explicita (la realiza el programador). La sobre carga de funciones y operadores +,-, son símbolos en el que su significado dependerá del contexto y usan como o elementos matrices.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

3 comentarios:

Unknown dijo...

muy buena tarea

Unknown dijo...

Esto quiere decir que por medio de la verificacion de tipos
podemos determinar que los operadores a los que estamos
accediendo sean los correctos y si no esta nos marcara las expresiones que no sean aceptadas dentro del lenguaje.

Unknown dijo...

gracias!!

Publicar un comentario