compiladores

Páginas: 13 (3062 palabras) Publicado: 12 de noviembre de 2014
Definiciones dirigidas por sintaxis.

Una definición dirigida por la sintaxis utiliza gramática independiente del contexto para especificar la estructura sintáctica de la entrada. A cada símbolo de la gramática le asocia un conjunto de atributos y a cada producción, un conjunto de reglas semánticas para calcular los valores de los atributos asociados con símbolos que aparecen en esaproducción. 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 x se especifica de la forma siguiente. Primero, se construye un árbol de análisis sintáctico para x. Supongase que un nodo n del arbol de analisis sintactico esta etiquetado con el símbolo X de lagramática.
Los atributos pueden ser de cualquier tipo:
Números
Tipos estructurados
Referencias a la tabla de símbolos
Strings, que pueden representar secuencias largas de código generado por la DDS. Este código puede ser el código intermedio usado por el compilador.
Los atributos de un nodo del árbol de análisis sintáctico, reciben valor mediante las reglas semánticas asociadas a la producciónusada en ese nodo propietario del atributo.
Tenemos dos tipos de atributos:
Sintetizados
Heredado
Los atributos sintetizados se calculan a partir de los valores de los atributos de los nodos hijos del nodo actual, en el árbol de análisis sintáctico.
Los atributos heredados, se calculan a partir de los valores de los atributos del nodo padre y/o sus nodos hermanos
Los terminales pueden teneratributos sintetizados, pero no atributos heredados.Los valores de los atributos de un símbolo terminal, son provistos por el analizador léxico, por lo que no hay reglas para su calculo en la DDS.






Un ejemplo


Construcción de sintaxis de árboles


Un árbol de sintaxis es una estructura de datos recursiva que permite representar y manejar la información semántica de un código.El árbol de sintaxis presentado en Cupi2 representa expresiones aritméticas que incluyen operadores, números y variables.
El árbol de sintaxis debe cumplir las siguientes condiciones:
La raíz del árbol es una expresión
Un expresión esta compuesta por un término o por un término, un operador y otro término
Un término puede ser un factor, o un factor, un operador y otro factor
Un factor puedeser un número, una variable o una expresión entre paréntesis
Para el manejo variables y sus valores se usó la estructura de datos Tabla de Hashing Dinámica y para la construcción del árbol se uso descenso recursivo sobre la expresión.
Ejemplo:

En el ejemplo del árbol de sintaxis de expresiones aritméticas se representa la expresión 4 * 3 + 8. Podemos ver que la raíz es una Expresión, la cualque consiste en la suma de dos Términos. El término de derecha consiste en un Factor, el cual contiene el número 8. Por su parte, el término de la izquierda consiste en la multiplicación de dos factores, los cuales contienen un número cada uno.
Esta representación de la expresión nos permite obtener fácilmente el valor de la misma teniendo en cuenta la precedencia de los operadores.Representaciones y recorridos
Las expresiones aritméticas pueden ser representadas en 3 notaciones diferentes, infija, prefija y posfija. Cada una de estas notaciones se obtiene al recorrer el árbol en inorden, preorden y posorden respectivamente.
Notación Infija (Recorrido Inorden)

Notación Prefija (Recorrido Preorden)

Notación Posfija (Recorrido Posorden)

 En computación, un atributo es una especificación que define una propiedad de un Objeto, elemento o archivo. También puede referirse o establecer el valor específico para unainstancia determinada de los mismos.
Sin embargo, actualmente, el término atributo puede y con frecuencia se considera como si fuera una propiedad dependiendo de la tecnología que se use.
Para mayor claridad, los atributos deben ser...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Compiladores
  • Compilador
  • COMPILADORES
  • Compiladores
  • Compiladores
  • Compiladores
  • compiladores
  • Compiladores

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS