semantico

Páginas: 7 (1516 palabras) Publicado: 18 de septiembre de 2013
1

Cadena de
tokens
Árbol
Sintáctico

Grafo de
dependencias

Eval. reglas
semánticas

ANÁLISIS SEMÁNTICO

Análisis Semántico
2

Comprobación estática
Comprobación de tipos
La aplicación de los operadores y operandos deben ser compatibles

Comprobaciones del flujo del control
Las proposiciones que hacen que se abandone el flujo del control de
una construcción debetranferirse a otro punto. (break, exit)

Comprobaciones de unicidad
Hay situaciones en los que un objeto solo puede definirse una vez
exclusivamente. Las etiquetas de una sentencia case no deben
repetirse, declaraciones de objetos,..

Comprobaciones relacionadas con nombre
El mismo nombre debe aparecer dos o más veces. En Ada el nombre
que aparece en un bloque puede aparecer al principio y final,el
compilador debe comprobar que se utiliza el mismo el ambos sitios

1

Análisis Semántico
3

Además de comprobar que un programa cumple con las reglas de la
gramática, hay que comprobar que lo que se quiere hacer tiene sentido
Esta f
E t fase tambíen modifica l t bl d símbolos y suele estar mezclada
t bí
difi la tabla de í b l
l
t
l d
con la generación de código intermedio
Lasgramáticas independientes del contexto (G2) no son suficientes para
realizar el análisis semántico
Por ejemplo, no hay forma de comprobar si una variable ha sido
definida ya, o si existe una determinada etiqueta
Es necesario definir un tipo de gramática más rica como las gramáticas
de atributo

Definición
Las gramáticas de atributo son gramáticas G2 a las que se añaden
atributos y reglasde evaluación de atributos (funciones/reglas
semánticas)

El Analizador Semántico
4

Traducción dirigida por sintaxis
Autómata a pila
(Gramática independiente
del contexto)
+
Acciones Semánticas

Cadena
De entrada

Árbol de Análisis
Sintáctico

Grafo de
Dependencias

Traductor
Dirigido por
Sintaxis

Orden de Evaluación
de las reglas Semánticas

2

Traduccióndirigida por sintaxis
5

Notaciones
Definición dirigida por la sintaxis (DDS)
Esquema de Traducción (EDT)

Evaluación de una acción
Generación de código
g
Guardar/Consultar información de la Tabla de Símbolos
Notificación de mensajes de error

Traducción dirigida por sintaxis
6

Definición dirigida por la sintaxis
Cada í b l ti
C d símbolo tiene un conjunto de atributos asociados
j td t ib t
i d
Atributo: una cadena, número, tipo, posición de memoria, etc
NombredeSímbolo.NombredeAtributo

Cada producción A=α tiene asocida un conjunto de acciones
semánticas que se representan como una función:
X.atr=f (Y1.atr, ..., Yn.atr)

Dos tipos de atributos
Sintetizados (locales)
El valor a asignar a un nodo depende del valor de los nodos hijos

Heredados
Se pasan a nivelesinferiores del árbol. Su valor depende del valor
de los hermanos y del padre.

3

Traducción dirigida por sintaxis
7

Ejemplo
Sintetizados, CALCULADORA,
Sintetizados CALCULADORA Análisis Ascendente
Producción
Reglas Semánticas
L→E n
print (E.val)
E→E1 + TE.val := E1.val + T.val
E→T
E.val := T.val
T→T
T T1 * F T l := T1.val * F l
T.val
l F.val
T→F
T.val := F.val
F→( E )F.val := E.val
F→dígito F.val := dígito.valex

Traducción dirigida por sintaxis
8

Ejemplo
Heredados,
H d d INFORMACIÓN DE TIPOS
Producción
Reglas Semánticas
D→T L
L.her := T.tipo
T→int
T.tipo := integer
T→real
T.tipo :
T tipo := real
L→L1 , id L1.her := L.her
añadetipo (id.entrada, L.her)
L→id
añadetipo (id.entrada, L.her)

4

Grafos de Dependencias
9

Si un atributo ben un nodo depende de un atributo
c, entonces se debe evaluar la regla semántica
e al ar
para b después de la regla semántica que define a
c
Las interdependencias entre atributos heredados y
sintetizados de un árbol de análisis sintáctico se
pueden representar mediante un grafo dirigido
d
t
di t
f di i id
llamado Grafo de Dependencias

Grafo de Dependencias
10

Algoritmo de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Semantica
  • Semantica
  • Semantica
  • la semàntica
  • LA SEMÁNTICA
  • semantica
  • Semántica
  • Semantica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS