Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad III
Analizador Semántico
Semana 12
Traducciones
Grafo de dependencias
Traducción Dirigida por la Sintaxis
reducción de la frase: x + y – x * y.
Genera(ADD, ApunE2,ApunT,va[k] *)
(3) E1 E2 - T (* INC(k);
ApunE1 := va[k];
Genera(SUB, ApunE2, ApunT, va[k] *)
(4) T F (* ApunT := ApunF *)
(5) T1 T2 * F (* INC(k);
ApunT1 := v a[k];
Genera(MUL, ApunT2, ApunF, va[k] *)
(6) T1 T2 / F (* INC(k);
ApunT1 := va[k];
Genera(DIV, ApunT2, ApunF, va[k] *)
(7) F x (* ApunF := x; *)
(8) F y (* ApunF := y; *)
(9) F (E) (* ApunF := ApunE; *)
Traducción a cuádruplos
Análisis de frase: x + y – x * y
Continua…
Traducción a cuádruplos
Análisis de frase: x + y – x * y
Definición
Sintaxis Semántica
E0 := E1 + T E0.Value := E1.Value+ T.Value
E := T E.Value := T.value
T := F T.Value := F.Value
o Sintetizados (locales)
Se definen en un determinado nodo del árbol de
derivación y permiten asignar un valor a un nodo
dependiendo del valor de los nodos hijos
o Heredados
Se pasan a niveles inferiores del árbol. Su valor depende
del valor de los hermanos y del padre. Sirven, por ejemplo,
para saber si hay que utilizar el valor de un identificador o
su dirección según aparezca en la parte izquierda o
derecha de su asignación.
Atributos Sintetizados (1/4)
Formas de traducción dirigida por la sintaxis
X0
X1 Xi Xn
Formas de traducción dirigida por la sintaxis
Atributos Sintetizados (2/4)
Ejemplo
• calculadora
• Información de tipos
Producción Reglas Semánticas
DTL L.her := T.tipo
T int T.tipo := integer
T real T.tipo := real
L L1,id L1.her := L.her
añadetipo (id.entrada, L.her)
L id añadetipo (id.entrada, L.her)
Formas de traducción dirigida por la sintaxis
Atributos Heredados (3/4)
• Una declaración generada por el terminal D en la definición dirigida
por sintaxis en la figura 4.4 consta de la palabra clave INT o REAL,
seguida de una lista de identificadores.
• El no terminal T tiene un atributo sintetizado tipo, cuyo valor viene
determinado por la palabra clave de la declaración.
• La regla semántica L.her:= T.tipo, asociada con la regla de
producción D T L, asigna al atributo heredado L.her el tipo de la
declaración.
• Entonces las reglas pasan este tipo por el árbol de análisis sintáctico
utilizando el atributo heredado L.her. Las reglas asociadas con las
producciones de L llaman al procedimiento añadetipo para añadir
el tipo de cada identificador a su entrada en la tabla de símbolos
(apuntada por el atributo ptr_tds).
Formas de traducción dirigida por la sintaxis
Atributos Heredados (4/4)
En la figura 4.5 se muestra un árbol de análisis sintáctico con
anotaciones para la frase real id1, id2, id3. El valor de L.her en los tres
nodos de L da el tipo de los identificadores id1, id2, id3. Estos valores se
determinan calculando el valor del atributo T.tipo en el hijo izquierdo
de la raíz y evaluando después L.her de forma descendente en los tres
nodos de L en el subárbol derecho de la raíz. En cada nodo de L
también se llama al procedimiento añadetipo para insertar en la tabla
de símbolos el hecho de que el identificador en el hijo derecho de
este nodo tiene tipo real.
• Las interdependencias entre atributos
heredados y sintetizados de un árbol de
Grafo de dependencias
Unidad III
Analizador Semántico
Semana 12