70 likes | 345 Views
Traducción Dirigida por la Sintaxis. Capítulo 5 Sección 5.1. Traducción dirigida por la sintaxis. Asocia información a la construcción del lenguaje Atributos en los símbolos de la gramática Definiciones dirigidas por la sintaxis Esquemas de traducción. Proceso.
E N D
Traducción Dirigida por la Sintaxis Capítulo 5 Sección 5.1
Traducción dirigida por la sintaxis • Asocia información a la construcción del lenguaje • Atributos en los símbolos de la gramática • Definiciones dirigidas por la sintaxis • Esquemas de traducción
Proceso Orden de evaluación de las reglas semánticas Arbol de análisis sintáctico Grafo de dependencias Cadena de entrada
Definiciones dirigidas por la sintaxis - DDpS • Ocultan detalles de la implementación • Generalizan la gramática • Símbolos tienen atributos • Atributos representan cualquier cosa • Valor de atributo por regla semántica • Atributo sintetizado: a partir de los hijos • Atributo heredado: a partir de padre y hermanos
Forma de DDpS • Para cada producción A => α • Reglas semánticas b = f(c1,c2,...,ck) • b es atributo sintetizado de A • c1,c2,...,ck son atributos de simbolos en la producción • b es atributo heredado • de algún símbolo del lado derecho (α) • c1,c2,...,ck son atributos de simbolos en la producción
Producciones L => E n E => E1 + T E => T T => T1 * F T => F F => (E) F => dígito Reglas semánticas Print(E.val) E.val = E1.val + T.val E.val = T.val T.val = T1.val * F.val T.val = F.val F.val = E.val F.val = dígito.valex Ejemplo calculadora
Producciones D => T L T => int T => real L => L1, id L => id Reglas semánticas L.her = T.tipo T.tipo = entero T.tipo = real L1.her = L.her AgregarTipo(id.entrada,L.her) AgregarTipo(id.entrada,L.her) Ejemplo declaración de tipos