Una definicion dirigida por la sintaxis es un pariente cercano de los esquemas de traduccion. En una definicion dirigida por la sintaxis una gramatica G= V,P,S, se aumenta con nuevas caracteri¬sticas:
• A cada símbolo de la gramática se le asocian cero o más atributos. Un atributo queda caracterizado por un identificador o nombre y un tipo o clase. A este nivel son atributos formales, como los parámetros formales, en el sentido de que su realización se produce cuando el nodo del árbol es creado.
• A cada regla de producción A= X1,X2,……..Xn se le asocian un conjunto de reglas de evaluacion de los atributos o reglas semanticas que indican que el atributo en la parte izquierda de la regla semantica depende de los atributos que aparecen en la parte derecha de la regla. El atributo que aparece en la parte izquierda de la regla semantica puede estar asociado con un si¬mbolo en la parte derecha de la regla de produccion.
• Los atributos de cada si¬mbolo de la gramatica se dividen en dos grupos disjuntos: atributos sintetizados y atributos heredados. Un atributo de es un atributo heredado si depende de atributos de su padre y hermanos en el arbol. Un atributo sintetizado es aquel tal que el valor del atributo depende de los valores de los atributos de los hijos, es decir en tal caso ha de ser una variable sintactica y los atributos en la parte derecha de la regla semantica deben ser atributos de si¬mbolos en la parte derecha de la regla de produccion asociada.
• Los atributos predefinidos se denominan atributos intri¬nsecos. Ejemplos de atributos intrisecos son los atributos sintetizados de los terminales, los cuales se han computado durante la fase de analisis lexico. Tambien son atributos intri¬nsecos los atributos heredados del si¬mbolo de arranque, los cuales son pasados como parametros al comienzo de la computacion.
La diferencia principal con un esquema de traduccion esta en que no se especifica el orden de ejecucion de las reglas semanticas. Se asume que, bien de forma manual o automatica, se resolveran las dependencias existentes entre los atributos determinadas por la aplicacion de las reglas semanticas, de manera que seran evaluados primero aquellos atributos que no dependen de ningun otro, despues los que dependen de estos, etc. siguiendo un esquema de ejecucion que viene guiado por las dependencias existentes entre los datos.
Aunque hay muchas formas de realizar un evaluador de una definicion dirigida por la sintaxis, conceptualmente, tal evaluador debe:
1. Construir el arbol de analisis sintactico para la gramatica y la entrada dadas.
2. Analizar las reglas semanticas para determinar los atributos, su clase y las dependencias entre los mismos.
3. Construir el grafo de dependencias de los atributos, el cual tiene un nodo para cada ocurrencia de un atributo en el arbol de analisis sintactico etiquetado con dicho atributo. El grafo tiene una arista entre dos nodos si existe una dependencia entre los dos atributos a traves de alguna regla semántica.
4. Supuesto que el grafo de dependencias determina un orden parcial (esto es cumple las propiedades reflexiva, antisimetrica y transitiva) construir un orden topologico compatible con el orden parcial.
5. Evaluar las reglas semanticas de acuerdo con el orden topologico.
6. El significado de una sentencia de entrada está relacionado con su estructura sintáctica.
No hay comentarios:
Publicar un comentario