Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Udenar 16 Procesamiento Descendente L-Atributadas 3
Udenar 16 Procesamiento Descendente L-Atributadas 3
Análisis
Semántico
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
GRAMATICA L-ATRIBUTADA
El propósito de la propiedad L-atributada es el de asegurar que esos atributos puedan ser evaluados dentro de un
camino propio del procesamiento descendente.
El objetivo es obtener una máquina de pila aumentada que permita realizar la traducción especificada en la
gramática L-atributada que tiene un procesamiento descendente con una gramática de entrada LL(1)
Condiciones L-atributada
Una gramática de traslación con atributos se llama L-atributada si y solo si cumple con las siguientes condiciones:
• Para cada regla de evaluación de atributos de un atributo heredado de algún símbolo dado en el lado derecho
de una producción, cada argumento de esa regla es ó un atributo heredado del lado izquierdo o un atributo
arbitrario del algún símbolo del lado derecho que aparezca a la izquierda del símbolo evaluado.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
GRAMATICA L-ATRIBUTADA
Condiciones L-atributada
Una gramática de traslación con atributos se llama L-atributada si solo si cumple con las siguientes condiciones:
• Para cada regla de evaluación de atributo asociado con un atributo sintetizado del lado izquierdo de una
producción, cada argumento de esa regla es, ó un atributo heredado del lado izquierdo dado ó un atributo
arbitrario de algún símbolo del lado derecho.
• Para cada regla de evaluación de atributos asociado con un atributo sintetizado de un símbolo de acción, cada
argumento de esa regla es un atributo heredado del símbolo de acción dado.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Para ilustrar la evaluación suponemos que una gramática tiene la siguiente producción:
i1,i4,i7,i8,i9 son atributos heredados
<A>i1,s2,s3 <B>i4 <C>s5 <D>s6,i7,i8 <F>i9 s2,s3,s5,s6 atributos sintetizados.
Y las reglas de evaluación de atributos son dadas para s2 , s3, i4,i7,i8,i9
La evaluación de estas producciones consiste en chequear que las reglas para i4, i7, i8 e i9 satisfacen la condición 1
y las reglas para s2 y s3 satisfacen la condición 2.
Bajo la condición 1, la evaluación de la regla para i4 puede usar solamente i1 como un argumento, así la regla puede
ser:
i4 f (i1) ó i4 328 ó (i4,i7) i1
Igualmente los argumentos para las reglas i7 e i8 deben estar dados por el conjunto {i1,i4,s5} y los argumentos
para la regla i9 debe estar dado por el conjunto {i1,i4,s5,s6,i7,i8}
Bajo la condición 2, la regla de evaluación de atributos para s2 y s3 pueden usar cualquier atributo del lado derecho
y los heredados del lado izquierdo {i1,i4,s5,s6,i7,i8,i9}
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Para ilustrar la evaluación suponemos que una gramática tiene la siguiente producción:
La condición 3 es usada para evaluar reglas asociadas con símbolos de acción y es sacada por la inspección de la
lista de argumentos y asegurar que atributos sintetizados no son usado en una regla de evaluación.
Condición L-atributada
Llamamos una regla L-atributada si esta satisface cualesquiera de las condiciones apropiadamente.
Llamamos a una producción o a un símbolo de acción L-atributado si todas las reglas de evaluación de atributos son
L-atributados.
Una gramática es entonces L-atributada si todas las producciones y símbolos de acción son L-atributados.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
FORMA SIMPLE DE ASIGNACIÓN
Las reglas de evaluación de atributos se las maneja como instrucciones de asignación (pero no son asignaciones) y
tienen las siguientes formas:
El lado derecho como función
x F(y,z)
El lado derecho puede ser el valor de un atributo o una constante
Asignado a uno o varios atributos
x y y (x,y,z) 17
Definición
Regla de Copia: una regla de evaluación es una regla de copia si y solo si es de la forma:
x y ó (x1 ,x2, ....., xn) y
Donde el lado izquierdo es un único atributo o lista de atributos y el lado derecho una constante o un atributo.
El lado derecho es llamado fuente y el lado izquierdo el destino.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
FORMA SIMPLE DE ASIGNACIÓN
Ejemplo: Realizar una gramática con atributos que permita reconocer expresiones aritméticas en notación prefija y
convertirla a forma simple de asignación.
Paso uno
Crear los símbolos de acción para re realizar las operaciones de suma y multiplicación respectivamente. Estos
símbolos de acción va a tener los siguientes elementos
{suma}a1,a2,s a1 y a2 son heredados y s sintetizado
s a1 + a2
{mult}a1,a2,s
s a1 * a2
Los demás símbolos y sus características son los siguientes:
{respuesta}r r heredado
<E>p p sintetizado
Paso dos
La gramática en forma simple de asignación queda de la siguiente forma:
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo: Realizar una gramática con atributos que permita reconocer expresiones aritméticas en notación prefija y
convertirla a forma simple de asignación.
Un símbolo con n campos en la pila se representa con (n+1) celdas, donde la celda del tope contiene el nombre
del símbolo y las de abajo representan los n campos.
De acuerdo con el ejercicio anterior la gramática aumentada que permita tratar sus diferentes atributos sería la
siguiente:
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo. Representar la gramática que reconoce la notación postfija en una máquina de pila aumentada.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo. Representar la gramática que reconoce la notación postfija en una máquina de pila aumentada.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo. Representar la gramática que reconoce la notación postfija en una máquina de pila aumentada.
Representación gráfica de las producciones
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo. Representar la gramática que reconoce la notación postfija en una máquina de pila aumentada.
Representación gráfica de las producciones
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo. Representar la gramática que reconoce la notación postfija en una máquina de pila aumentada.
Utilizar la gramática de expresiones prefijas para obtener determinar el resultado de las siguiente expresión (2*3)+5,
el cual en notación prefija y debidamente tipificada es la siguiente:
+*C 2C 3 C5
Representación gráfica del reconocimiento
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo. Representar la gramática que reconoce la notación postfija en una máquina de pila aumentada.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo. Representar la gramática que reconoce la notación postfija en una máquina de pila aumentada.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Resumen de las reglas
Las reglas de evaluación plantean las siguientes formas generales:
1. Heredado Sintetizado
2. Sintetizado 1 Sintetizado 2
3. Sintetizado Heredado
4. Sintetizado Entrada o arbitrario
• Para el caso 1 en el atributo sintetizado se coloca la dirección donde va a quedar almacenado el valor del
atributo heredado, el cual puede ser una estructura de datos como una lista ligada.
• Para el caso 2 en donde los dos elementos son sintetizados en el sintetizado 2 se mantiene la dirección que
existe en el sintetizado 1.
• En caso 3 el valor que esté almacenado en el atributo heredado se copia en la dirección que está referenciada
en el atributo sintetizado.
• El cuarto caso es semejante al anterior, un valor de entrada es almacenado en la dirección especificada por
atributo sintetizado.
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo 2 teniendo en cuenta las reglas anteriores
Seguimiento de la pila de la secuencia: (8*2)+4 = +*C 8 C2 C4 Aplico #3:
REEMPLACE ({MULT} <E> <E>),
AVANCE
Pila inicial: Aplico #1: Aplico #2:
REEMPLACE ({RESPUESTA} <E>), REEMPLACE ({SUMA} <E> <E>),
RETIENE AVANCE
Análisis Semántico
PROCESAMIENTO DESCENDENTE DE GRAMÁTICAS ATRIBUTADAS
Ejemplo 2 teniendo en cuenta las reglas anteriores
Seguimiento de la pila de la secuencia: (8*2)+4 = +*C 8 C2 C4
Aplico #4: POP, AVANCE Ejecuta {MULT}: POP, RETIENE Aplico #4: POP, AVANCE Ejecuta {SUMA}: POP, RETIENE
2. <E-L> Selección (< E-L > +<T>< E-L >) = primero (+<T> < E-L >)=
+ <T> <E-L> {+}
3. <E-L> Selección (< E-L >) = primero () U siguiente (< E-L >) ={ } U { ), ¬ } = { ), ¬ }
5. <T-L> Selección (< T_L > *<F>< T_L >) = primero (*<F>< T_L >)=
* <F> <T-L> {*}
6. <T-L> Selección (< T_L > ) = primero () U siguiente (< T_L >) ={ } U {+,), ¬}= {+,), ¬}
Resumen
Selección (1) = {(, Id}
Selección (2) = {+}
Selección (3) = { ), ¬ }
Selección (4) = { (, Id }
Selección (5) = {*}
Selección (6) = {+,), ¬}
Selección (7) = { ( }
Selección (8) = {I}
Procesamiento Descendente
Ejercicio . Implementar una tabla de control para la gramática de operaciones aritméticas LL(1)
Aplico #5 Aplico #7
Aplico #8
POP,RETIENE I¬ POP,RETIENE ¬
POP,AVANCE ¬
Procesamiento Descendente
Ejercicio . Gramatica LL(1) para expresiones infijas con atributos y en forma simple de asignación