RSS

DEFINICIÓN DIRIGIDA POR LA SINTAXIS (dds)

31 Ene
Una dds es una gramática independiente de contexto cada símbolo tiene un conjunto de atributos asociados.
Atributo: una cadena, número, tipo, posición de memoria, etc
NombredeSímbolo. NombredeAtributo

Cada producción A=a tiene asociada un conjunto de acciones semánticas que se representan como una función:

X.atr=f (Y1 .atr, …, Yn .atr)

Dos tipos de atributos

Heredados:

El valor de un nodo se pasa a un nivel inferior o igual en el árbol.

Su valor depende del valor de los hermanos y del padre.

Sintetizados (locales):

El valor a asignar a un nodo depende del valor de los nodos hijos

Para traducir una construcción de un lenguaje de programación un compilador necesita el código generado para la construcción, y además:
Tipo de la construcción

  • Posición de la primera instrucción del código objeto
  • Número de instrucciones generadas …

Los atributos se mencionan de forma abstracta. Un atributo puede representar cualquier cantidad un tipo, una cadena, una posición de memoria o cualquier otra cosa)

Una definición dirigida por la sintaxis es una generalización de una gramática independiente de contexto en la que cada símbolo gramatical tiene asociado un conjunto de atributos

Especifica la traducción de una construcción en función de los atributos asociados con sus componentes sintácticos. Un esquema de traducción es una gramática independiente de contexto en la que se asocian atributos con los símbolos gramaticales y se insertan acciones semánticas encerradas entre llaves dentro de los lados derechos de las reglas de producción
Es una notación orientada a procedimientos que se utiliza para especificar traducciones

Utilizan una gramática independiente de contexto para especificar la estructura sintáctica de la entrada
– A cada símbolo de la gramática se le asocia un conjunto de atributos
– A cada regla de la gramática se le asocia un conjunto de reglas semánticas para calcular los valores de los atributos asociados con los símbolos de esa regla
– La gramática y el conjunto de reglas semánticas constituyen la definición dirigida por la sintaxis

Una traducción es una transformación de una entrada en una salida. La salida para cada entrada W se especifica como sigue:
– Se construye un árbol sintáctico para W
– Suponiendo que un nodo n del árbol está etiquetado con el símbolo X de la gramática se escribe X.a para indicar el valor del atributo a de X en ese nodo
– El valor de X.a en n se calcula por la regla semántica para el atributo a asociado a la regla X utilizada en el nodo n
El árbol de análisis sintáctico que muestra los valores de los atributos en cada nodo se denomina árbol de análisis sintáctico con anotaciones

  • El conjunto de atributos asociado a cada símbolo gramatical se divide en dos subconjuntos

Atributos sintetizados. Se pueden calcular durante un solo recorrido ascendente del árbol de análisis sintáctico
Atributos heredados. Sirven para expresar la dependencia de una construcción en de un lenguaje en el contexto en el que aparece

  • Si se considera un nodo de un símbolo gramatical de un árbol sintáctico como un registro para guardar información entonces un atributo se corresponde con el nombre de un campo
  • Un atributo puede representar cualquier cosa (una cadena, un número, un tipo, una posición de memoria…)

El proceso de calcular los valores de los atributos en los nodos se denomina anotar o decorar el árbol de análisis sintáctico

  • El valor de un atributo se define mediante la regla semántica asociada a la regla de producción utilizada en ese nodo
  • El valor de un atributo sintetizado se calcula a partir de los valores de los atributos de los hijos de ese nodo en el árbol de análisis sintáctico
  • El valor de un atributo heredado se calcula a partir de los valores de los atributos de los hermanos y el padre de ese nodo
  • En una definición dirigida por la sintaxis, se asume que los terminales sólo tienen atributos sintetizados (la definición no proporciona ninguna regla semántica para los terminales)
  • Los valores para los atributos de los terminales son proporcionados generalmente por el analizador léxico

EJEMPLO 1 :



EJEMPLO 2:
En el siguiente ejemplo, un atributo heredado distribuye la información sobre los tipos a los distintos identificadores de una declaración.

a4:= real

a5:= a4

Añadetipo (id3, entrada, a5)

a7:= a5

Añadetipo (id2, entrada, a7)

a9:= a7

Añadetipo (id1, entrada, a9)

 

FUENTES:

sintaxis

Anuncios
 
Deja un comentario

Publicado por en 31 enero, 2011 en Uncategorized

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: