DEFINICIONES DIRIGIDAS POR LA SINTAXIS

Definición

Es una generalización de una gramática incontextual en la cual cada sımbolo tiene asociado un conjunto de atributos.

Utiliza una gramática independiente de contexto para especificar la estructura sintáctica de la entrada, la idea es asociar con cada símbolo de la gramática un conjunto de atributos (que luego veremos que pueden ser sintetizados o heredados) y además a cada producción un conjunto de reglas semánticas para calcular los valores de los atributos asociados con los símbolos que aparecen en esa producción. La definición dirigida por sintaxis consiste en sí entonces de la gramática y el conjunto de reglas semánticas.

Para traducir una construcción de un lenguaje de programación, un compilador puede necesitar tener en cuenta muchas características, además del código generado para la construcción. Una definición dirigida por sintaxis es un formalismo para especificar las traducciones para las construcciones en función de atributos asociados con sus componentes sintácticos.

ATRIBUTOS

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

ATRIBUTOS SINTETIZADOS:

  • Los atributos sintetizados se utilizan ampliamente,Se pueden calcular durante un solo recorrido ascendente del árbol de análisis sintáctico.
  • Si una definición dirigida por sintaxis tiene únicamente atributos sintetizados se dice que es S-atribuida.
  • El árbol de análisis sintáctico de una gramática S-atribuida puede decorarse mediante un recorrido en postorden.

ATRIBUTOS HEREDADOS:

  • Sirven para expresar la dependencia que hay entre una construcción del lenguaje de programación y su contexto.
  • Siempre es posible reescribir una definición dirigida por sintaxis para que sea S-atribuida.
  • En ocasiones es más natural utilizar 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).
REGLAS SEMANTICAS

  1. Las reglas semánticas establecen las dependencias entre los atributos que serán representadas mediante un grafo
  2. El grafo de dependencias proporciona el orden de evaluación de las reglas semánticas
  3. La evaluación de las reglas semánticas define los valores de los atributos de los nodos del árbol
  4. Una regla semántica puede tener también efectos colaterales (imprimir un valor, actualizar una variable global
  5. Una gramática con atributos es una definición dirigida por la sintaxis en la que las funciones de las reglas semánticas no pueden tener efectos colaterales.

EJEMPLO:
Definición Dirigida por la Sintaxis  de una calculadora de escritorio sencilla:

links: