TAREA_2_FERNANDEZ
ANALISIS SEMANTICO
Una tabla de símbolos es la estructura de datos que permite almacenar información semántica, es decir en ella se encuentra el significado asociado a las estructuras formales (sintaxis) del lenguaje.
Su objetivo es delimitar el contexto de un conjunto de frases o instrucciones de un lenguaje libre de contexto, es decir que los lenguajes representados por las variables se describen recursivamente en términos de otros lenguajes o de símbolos primitivos llamados terminales y las reglas que describen el lenguaje asociado con cada variable se llaman producciones.
Algunas de las utilidades de la tabla de símbolos son:
Una gramática con atributos es una gramática de contexto libre cuyos símbolos pueden tener asociados atributos y las producciones pueden tener asociadas reglas de evaluación de los atributos. Los atributos a mencionar son dos:
GRAFOS DE DEPENDENCIA
Cuando aparecen definidos atributos sintetizados y heredados, es necesario establecer un ORDEN DE EVALUACION DE LOS ATRIBUTOS, para ello se utilizan los grafos de dependencia estos están construidos por nodos y arcos, cada uno de ellos tiene algún método de evaluación de las reglas semánticas; por ejemplo el nodo está compuesto por uno método de evaluación que es árbol de análisis dice que para cada entrada se construye el árbol sintáctico. Y en arco basado en reglas semánticas dependiendo de estas (atributos heredados o sintetizados) se establece el orden de evaluación.
COMPROBACIONES SEMANTICAS
CONSTRUCTORES DE TIPOS:
Modo de determinar si dos expresiones de tipos son equivalentes:
(,), Pueden estar sobrecargadas (ADA, FORTRAN), ya que se usan como referencia de elementos de matrices y como funciones.
CONCLUSION PERSONAL:
COMO SE LLEVA A CABO LA CREACION
DE LA TABLA DE SIMBOLOS Y DE
DIRECCIONES
·
FUNCION
·
CARACTERISTICAS
·
CONTENIDO
·
ESTRUCTURA
·
OPERACIONES
RESUMENUna tabla de símbolos es la estructura de datos que permite almacenar información semántica, es decir en ella se encuentra el significado asociado a las estructuras formales (sintaxis) del lenguaje.
Su objetivo es delimitar el contexto de un conjunto de frases o instrucciones de un lenguaje libre de contexto, es decir que los lenguajes representados por las variables se describen recursivamente en términos de otros lenguajes o de símbolos primitivos llamados terminales y las reglas que describen el lenguaje asociado con cada variable se llaman producciones.
Algunas de las utilidades de la tabla de símbolos son:
o
Simplifica
el análisis sintáctico
o
Ayudan
en las comprobaciones semánticas
o
Y
en la generación de código.
El
contenido de la tabla de símbolos es de dos tipos: el propio símbolo y los
atributos necesarios para definir el símbolo a nivel semántico y de generación
de código, los atributos dependen a nivel general si:
§ Del tipo de
gestión de memoria
§ El lenguaje
esta, o no, estructurado en bloques
§ El símbolo
es, o no, parámetros de un procedimiento o función
CONSTRUCCION
DE LA TABLA DE SIMBOLOS
1.
El
analizador léxico deberá:
ü Insertar los
símbolos detectados en la tabla de símbolos
ü Crear la
tabla de símbolos parcialmente
ü Señalar la
línea del programa fuente en donde aparecen
2.
El
analizador semántico:
ü Añadir los
tipos, si procede, a los símbolos que aparecen en la tabla de símbolos.
OPERACIONES
SOBRE LA TABLA DE SIMBOLOS
1.
Insertar
2.
Consultar
3.
Modificar
(añadir atributos nuevos).
Lenguaje
con declaraciones de variables está conformado por dos tipos: explicitas e
implícitas, en la primera está compuesta por declaraciones de tipo operación de
insertar y de referencia donde solo se puede consultar; y en las implícitas
contiene las operaciones de consulta si no está ya incluida e inserta en caso
contrario y además tiene lenguajes con estructura de bloque, es decir crea
subtablas.
En
la implementación de la tabla de símbolos, la distribución de la información
dependerá de las características del lenguaje y de las restricciones
establecidas para los símbolos. Está conformado por campos:
Campo
para el símbolo que a su vez se divide en formato fijo y variable respecto al
primero como su nombre lo dice establece un límite en el número de caracteres
que forman los símbolos. En el segundo se dispone de la TS de un área auxiliar
en donde se introducen los símbolos de un modo consecutivo.
Campo de
dirección: este
se divide en dos lenguajes sin y con estructura de bloques en esta última se
necesitan dos campos número y dirección de bloque.
Campo tipo: este se
introduce cuando se identifica una declaración explícita o implícita de una
variable. Y se utiliza para determinar la memoria de almacenamiento y la
comprobación de tipos.
Campo núm.
de dimensiones / núm. de parámetros: la realiza el analizador semántico y
sirve para delimitar el tamaño de memoria necesaria para representar el
símbolo.
Campo lista
cruzada de referencia y puntero de orden: son útiles para el
programador del traductor con objeto de facilitar el uso de la TS.
ORGANIZACIÓN
DE LA TS
Esta
se subdivide en dos fases:
1-
Lenguaje SIN
estructura de bloque:
es por medio de una lista está dividida por ordenada y no ordenada en la
primera se representa por medio de árboles binarios y tablas hash.
2-
Lenguajes
CON estructura de bloque: una tabla para cada bloque con estructura de
PILA. La estructura consta de una PILA + INDICE.
GRAMATICA
CON ATRIBUTOSUna gramática con atributos es una gramática de contexto libre cuyos símbolos pueden tener asociados atributos y las producciones pueden tener asociadas reglas de evaluación de los atributos. Los atributos a mencionar son dos:
1)
ATRIBUTO HEREDADO:
si b está asociado con algún símbolo de
.
Las reglas de evaluación se realizan cuando se
aplican reducciones en el análisis sintáctico. Dentro de los requisitos de
evaluación los atributos deben definirse en función de los atributos asociados
con los símbolos gramaticales a su derecha y realizar un análisis
ascendente.
2)
ATRIBUTO SINTETIZADO:
si b está asociado con el símbolo no terminal A.
Su
evaluación depende de los atributos asociados con los símbolos precedentes en
la derivación. Como requisito es realizar un análisis descendente.GRAFOS DE DEPENDENCIA
Cuando aparecen definidos atributos sintetizados y heredados, es necesario establecer un ORDEN DE EVALUACION DE LOS ATRIBUTOS, para ello se utilizan los grafos de dependencia estos están construidos por nodos y arcos, cada uno de ellos tiene algún método de evaluación de las reglas semánticas; por ejemplo el nodo está compuesto por uno método de evaluación que es árbol de análisis dice que para cada entrada se construye el árbol sintáctico. Y en arco basado en reglas semánticas dependiendo de estas (atributos heredados o sintetizados) se establece el orden de evaluación.
COMPROBACIONES SEMANTICAS
ESTATICAS:
las comprobaciones sintácticas y semánticas.
DINAMICAS:
realizadas en tiempo de ejecución.
SEMANTICAS:
o De tipo: operandos
en las expresiones
o De flujo de control:
puntos de salida y entrada.
o De unicidad:
verifica la presencia de símbolos de forma única.
o Relación de nombres.
Un mismo nombre puede aparecer más de una vez.
EXPRESIONES
DE TIPOS
·
Tipos
básicos: boolean, char, integer, real,….
·
Nombre
de tipos
Las
expresiones de tipos es representado mediante el grafo dirigido aciclico (GDA).CONSTRUCTORES DE TIPOS:
§ Matrices
§ Producto
§ Registro
§ Apuntadores
§ Funciones
EQUIVALENCIA
ESTRUCTURALModo de determinar si dos expresiones de tipos son equivalentes:
·
Aplicando
GDA
·
Algoritmo
de análisis de los constructores
1)
EQUIVALENCIA DE NOMBRE: cuando las expresiones son
nombradas, entonces dos expresiones de tipos son equivalentes de nombre si y
solo si ambas expresiones son idénticas.
2)
ESPECIFICACION
DE UN COMPROBADOR DE TIPOS ELEMENTAL
Un
comprobador de tipos ha de dispones de:
o Asignación de tipos
o Comprobador de tipos
en las expresiones
o Comprobador de tipos
en las proposiciones o sentencias
o Comprobador de tipos
de las funciones
o Básicamente se
advierten dos tareas:
o De asignación
o De evaluación y
comprobación
TOPICOS
EN LA COMPROBACION DE TIPOS
1)
Conversión
de tipos (Coerción).
o Implícita: se
realiza automáticamente por medio del compilador
o Explicita: se
explicita por parte del programador la conversión
2)
Sobrecarga
de funciones y operadores
+,-,
son símbolos sobrecargados ya que su significado dependerá del contexto.(,), Pueden estar sobrecargadas (ADA, FORTRAN), ya que se usan como referencia de elementos de matrices y como funciones.
CONCLUSION PERSONAL:
Me pareció
la lectura muy interesante, que sirve como base para lenguajes y autómata II,
pero a su vez algo extensa me refiero a que para realizar una tabla de símbolos
hay que tener bien claros la secuencia o contenidos que tiene cada uno de sus
atributos y saber identificarlos. En resumen el analizador sintáctico se limita
a comprobar, mediante una GLC, que un identificador forma parte de una
expresión. Una vez comprobado que la sentencia es sintácticamente correcta, el
analizador semántico deberá verificar que el identificador empleado como parte
de una expresión haya sido declarado previamente. Para llevar a cabo esta
tarea, es típica la utilización de una estructura de datos llamada TABLA DE
SIMBOLOS.
No hay comentarios:
Publicar un comentario