TRADUCTORS INTRPRTADORS Clase 8: Forma Normal de (Noam) Chomsky y Gramáticas de Atributos
Agenda Forma Normal de Chomsky Gramáticas de Atributos
Forma Normal de Chomsky n la clase pasada, se introdujeron transformaciones de gramáticas.
Forma Normal de Chomsky n la clase pasada, se introdujeron transformaciones de gramáticas. Las nuevas gramáticas cumplen con una propiedad (por ejemplo, libre de λ-producciones)
Forma Normal de Chomsky n la clase pasada, se introdujeron transformaciones de gramáticas. Las nuevas gramáticas cumplen con una propiedad (por ejemplo, libre de λ-producciones) Será que podemos restringir la forma de las producciones?
Forma Normal de Chomsky Una gramática tal que todas sus reglas cumplan con un conjunto de condiciones se dice que está en una Forma Normal.
Forma Normal de Chomsky Una gramática tal que todas sus reglas cumplan con un conjunto de condiciones se dice que está en una Forma Normal. Hay varias Formas Normales, entre ellas están La Forma Normal de Greibach.
Forma Normal de Chomsky Una gramática tal que todas sus reglas cumplan con un conjunto de condiciones se dice que está en una Forma Normal. Hay varias Formas Normales, entre ellas están La Forma Normal de Greibach. La Forma Normal de Chomsky.
Forma Normal de Chomsky Una gramática tal que todas sus reglas cumplan con un conjunto de condiciones se dice que está en una Forma Normal. Hay varias Formas Normales, entre ellas están La Forma Normal de Greibach. La Forma Normal de Chomsky. studiaremos la segunda.
Forma Normal de Chomsky Una Gramática, Normal de Chomsky si: G ( V, P, S) está en Forma Todas las reglas en P son de la siguiente forma: A BC, con AV, B,C V {S} A x, con AV, x Si L(G), entonces S P.
Forma Normal de Chomsky Qué tiene de especial una Gramática que está en Forma Normal de Chomsky?
Forma Normal de Chomsky Qué tiene de especial una Gramática que está en Forma Normal de Chomsky? Si una frase wl(g), cómo será su derivación?
Forma Normal de Chomsky Qué tiene de especial una Gramática que está en Forma Normal de Chomsky? Si una frase wl(g), cómo será su derivación? l árbol de derivación resultante es binario. l tamaño de la derivación es de 2n -.
Forma Normal de Chomsky Qué tiene de especial una Gramática que está en Forma Normal de Chomsky? Si una frase wl(g), cómo será su derivación? l árbol de derivación resultante es binario. l tamaño de la derivación es de 2n -. Gracias a esto, es ideal para poder probar propiedades importantes.
Forma Normal de Chomsky Qué tiene de especial una Gramática que está en Forma Normal de Chomsky? Si una frase wl(g), cómo será su derivación? l árbol de derivación resultante es binario. l tamaño de la derivación es de 2n -. Gracias a esto, es ideal para poder probar propiedades importantes. Una de ellas la estudiaremos en una clase futura.
Forma Normal de Chomsky Serán equivalentes las Gramáticas Libres de Contexto y las Gramáticas en Forma Normal de Chomsky?
Forma Normal de Chomsky Serán equivalentes las Gramáticas Libres de Contexto y las Gramáticas en Forma Normal de Chomsky? n una dirección, sí. Toda Gramática en Forma Normal de Chomsky es Libre de Contexto.
Forma Normal de Chomsky Serán equivalentes las Gramáticas Libres de Contexto y las Gramáticas en Forma Normal de Chomsky? Ahora, falta el otro lado. Toda Gramática Libre de Contexto tendrá una gramática equivalente en Forma Normal de Chomsky?
Forma Normal de Chomsky Serán equivalentes las Gramáticas Libres de Contexto y las Gramáticas en Forma Normal de Chomsky? Ahora, falta el otro lado. Toda Gramática Libre de Contexto tendrá una gramática equivalente en Forma Normal de Chomsky? La respuesta es SÍ!
Forma Normal de Chomsky l Algoritmo. Dada una gramática. Limpiar a G. G (, V, P, S). liminar la recursividad en el símbolo inicial. 2. Aplicar el proceso de limpieza visto en la clase pasada. so nos deja una gramática limpia sin símbolo inicial recursivo
Forma Normal de Chomsky l Algoritmo. Dada una gramática 2. Transformar las reglas de la gramática limpia.. Construir, para cada símbolo terminal una nueva regla de la forma: X ' x G (, V, P, S) x
Forma Normal de Chomsky l Algoritmo. Dada una gramática G (, V, P, S) 2. Transformar las reglas de la gramática limpia. 2. Para toda producción que no genere solamente un símbolo terminal, reemplazar los símbolos terminales por su correspondiente no terminal creado en el paso. Todas estas reglas quedarían de la forma: A VV V con A, V, V,..., V 2 n, n V {S}
Forma Normal de Chomsky l Algoritmo. Dada una gramática 2. Transformar las reglas de la gramática limpia. 3. Separar las reglas en nuevas reglas que cumplan con la estructura deseada. s decir, una regla: A VV 2 Vn (con n 3) produciría las siguientes reglas: A V T T 2 V T 2 T T n3 n2 V V G (, V, P, S) n2 n T V n2 n
Forma Normal de Chomsky jemplo: Corrida en frío. Obtener una Gramática en Forma Normal de Chomsky a partir de la siguiente Gramática: S A C A abcb aa b ee a
Forma Normal de Chomsky jemplo: Corrida en frío. La gramática ya está limpia, salvo por la regla unitaria con el símbolo inicial. Reparamos dicho problema y procedemos al paso 2.
Forma Normal de Chomsky jemplo: Corrida en frío. Paso 2: Transformar la gramática. S A C abcb abcb aa b ee a
Forma Normal de Chomsky jemplo: Corrida en frío. Paso 2: Transformar la gramática. S abcb A' a A abcb B' b C aa ' e b ee a
Forma Normal de Chomsky jemplo: Corrida en frío. Paso 2: Transformar la gramática. a b A A C A B CB A A B CB S ' ' ' ' ' ' ' ' ' e b B a A ' ' '
Forma Normal de Chomsky jemplo: Corrida en frío. Paso 2: Transformar la gramática. La gramática tiene tres reglas con 3 o más símbolos: S A A' B' CB' A' B' CB' ' ' Aplicando las transformaciones queda
Forma Normal de Chomsky jemplo: Corrida en frío. b A A C B T CT T B T T A T A A T S ' ' ' ' ' 3 3 2 2 e b B a A T a T ' ' ' ' ' 4 4
Forma Normal de Chomsky jemplo: Corrida en frío. b A A C B T CT T B T T A T A A T S ' ' ' ' ' 3 3 2 2 e b B a A T a T ' ' ' ' ' 4 4 FROSTY!
Forma Normal de Chomsky l proceso permite construir una Gramática en Forma Normal de Chomsky a partir de una Gramática Libre de Contexto.
Forma Normal de Chomsky l proceso permite construir una Gramática en Forma Normal de Chomsky a partir de una Gramática Libre de Contexto. Con esto, toda Gramática Libre de Contexto tiene una Gramática en Forma Normal de Chomsky que la genera.
Gramáticas de Atributos Qué pasaría si pudiéramos aumentar los símbolos de una gramática con información adicional?
Gramáticas de Atributos Qué pasaría si pudiéramos aumentar los símbolos de una gramática con información adicional? Por ejemplo, en una gramática de expresiones aritméticas, nos interesaría almacenar evaluaciones parciales.
Gramáticas de Atributos Qué pasaría si pudiéramos aumentar los símbolos de una gramática con información adicional? Por ejemplo, en una gramática de expresiones aritméticas, nos interesaría almacenar evaluaciones parciales. Dada una gramática, construir su Árbol Sintáctico Abstracto asociado.
Gramáticas de Atributos Qué pasaría si pudiéramos aumentar los símbolos de una gramática con información adicional? Por ejemplo, en una gramática de expresiones aritméticas, nos interesaría almacenar evaluaciones parciales. Dada una gramática, construir su Árbol Sintáctico Abstracto asociado. Árbol Sintáctico Abstracto?
Gramáticas de Atributos Un Árbol Sintáctico Abstracto (AST) es una representación estructurada de la sintaxis de un lenguaje en particular.
Gramáticas de Atributos Un Árbol Sintáctico Abstracto (AST) es una representación estructurada de la sintaxis de un lenguaje en particular. l AST no es igual al árbol de derivación.
Gramáticas de Atributos Un Árbol Sintáctico Abstracto (AST) es una representación estructurada de la sintaxis de un lenguaje en particular. l AST no es igual al árbol de derivación. AST Sintaxis Árbol de derivación Proceso de Generación
Gramáticas de Atributos Qué es un atributo? Información que lleva un símbolo.
Gramáticas de Atributos Qué es un atributo? Información que lleva un símbolo. Un símbolo puede poseer cualquier cantidad de atributos. l valor de los atributos puede ser de cualquier tipo (por ejemplo, un AST).
Gramáticas de Atributos Qué es un atributo? Información que lleva un símbolo. Un símbolo puede poseer cualquier cantidad de atributos. l valor de los atributos puede ser de cualquier tipo (por ejemplo, un AST). Nos permiten calcular información que una Gramática Libre de Contexto no podría.
Gramáticas de Atributos Qué es un atributo? Información que lleva un símbolo. Un símbolo puede poseer cualquier cantidad de atributos. l valor de los atributos puede ser de cualquier tipo (por ejemplo, un AST). Nos permiten calcular información que una Gramática Libre de Contexto no podría. l lenguaje generado sigue siendo Libre de Contexto?
Gramáticas de Atributos Hay dos clases de atributos: Sintetizados: l valor del atributo es calculado a partir de el valor de otros atributos en niveles inferiores del proceso de derivación. Heredados: l valor del atributo es calculado a partir de el valor de otros atributos en niveles superiores del proceso de derivación.
Gramáticas de Atributos Hay dos clases de atributos: Sintetizados: l valor del atributo es calculado a partir de el valor de otros atributos en niveles inferiores del proceso de derivación. Heredados: l valor del atributo es calculado a partir de el valor de otros atributos en niveles superiores del proceso de derivación. Y si están al mismo nivel?
Gramáticas de Atributos Hay dos clases de atributos: Sintetizados: l valor del atributo es calculado a partir de el valor de otros atributos en niveles inferiores del proceso de derivación. Heredados: l valor del atributo es calculado a partir de el valor de otros atributos en niveles superiores del proceso de derivación. Y si están al mismo nivel? También serían heredados. HRDÉ UN ATRIBUTO!
Gramáticas de Atributos jemplo: Gramática de xpresiones Aritméticas. Queremos calcular su valor. * ( ) c
Gramáticas de Atributos jemplo: Gramática de xpresiones Aritméticas. Queremos calcular su valor. c ) ( * }.. { }.. { }... { }... { 0 0 2 0 2 0 c valor valor valor valor valor valor valor valor valor valor
Gramáticas de Atributos jemplo: Gramática de xpresiones Aritméticas. Queremos calcular su valor. * ( ) c { { { { 0. valor 0. valor 0. valor 0. valor. valor. valor 2 2. valor c. valor. valor. valor } } } } Qué tipo de atributo es valor?
Gramáticas de Atributos jemplo: Gramática de declaración de variables con tipo, estilo C/Java. D T L T L; t t 2 L, id id
Gramáticas de Atributos jemplo: Gramática de declaración de variables con tipo, estilo C/Java. D T L; { L. tipo T. tipo } T L t t 2 L, id id { { { L 0. asocs L 0 L L. asocs T. tipo t T. tipo. tipo 0. asocs {( id. valor, L t2 L. tipo {( id. valor, L 0 0. tipo)}. tipo)} } } }
Gramáticas de Atributos jemplo: Gramática de declaración de variables con tipo, estilo C/Java. D T L T t t L; 2 L, id id { { { {. asocs. asocs L. tipo T. tipo. tipo Qué tipo de atributo es asocs? L 0 L 0 L L T. tipo T. tipo 0. asocs {( id. valor, L t2 L. tipo {( id. valor, L t 0 0. tipo)}. tipo)} } } } }
Gramáticas de Atributos jemplo: Gramática de declaración de variables con tipo, estilo C/Java. D T L T t t L; 2 L, id id { { { { L 0. asocs. asocs L. tipo T. tipo. tipo T. tipo. asocs {( id. valor, L {( id. valor, L. tipo)} Qué tipo de atributo es asocs? Y tipo? L 0 L L T. tipo 0 t t2 L. tipo 0 0. tipo)} } } } }
Gramáticas de Atributos jemplo: l lenguaje de todos los árboles de búsqueda. A ( A val A) avac
Gramáticas de Atributos jemplo: l lenguaje de todos los árboles de búsqueda. A ( A val avac A) A. aceptar 0 ( A.max A. aceptar ( A2.min A2.min val. valor) A.min si A.min A0.min val. valor si A.min A2.max si A2.max A0.max val. valor si A2.max.min.max 0 A A 0 0 true A.max val. valor) A. aceptar A. aceptar 2
Gramáticas de Atributos jemplo: l lenguaje de todos los árboles de búsqueda. (Pertenece si A 0.aceptar es cierto.) A ( A val avac A) A. aceptar 0 ( A.max A. aceptar ( A2.min A2.min val. valor) A.min si A.min A0.min val. valor si A.min A2.max si A2.max A0.max val. valor si A2.max.min.max 0 A A 0 0 true A.max val. valor) A. aceptar A. aceptar 2
Gramáticas de Atributos Las gramáticas de atributos se usan principalmente en generadores de analizadores sintácticos.
Gramáticas de Atributos Las gramáticas de atributos se usan principalmente en generadores de analizadores sintácticos. stos reciben gramáticas extendidas con atributos.
Gramáticas de Atributos Las gramáticas de atributos se usan principalmente en generadores de analizadores sintácticos. stos reciben gramáticas extendidas con atributos. Cada regla tiene un atributo, asociado a su valor después de reconocer dicha regla.
Gramáticas de Atributos Las gramáticas de atributos se usan principalmente en generadores de analizadores sintácticos. stos reciben gramáticas extendidas con atributos. Cada regla tiene un atributo, asociado a su valor después de reconocer dicha regla. l resultado de reconocer una frase es el valor del atributo inicial.
Gramáticas de Atributos Resumiendo Conocemos los Lenguajes Libres de Contexto. Sabemos como especificarlos (Gramáticas Libres de Contexto). Sabemos como usarlos para resolver problemas dirigidos por sintaxis.
Gramáticas de Atributos Resumiendo Conocemos los Lenguajes Libres de Contexto. Sabemos como especificarlos (Gramáticas Libres de Contexto). Sabemos como usarlos para resolver problemas dirigidos por sintaxis. Falta cómo reconocerlos
Gramáticas de Atributos Resumiendo Conocemos los Lenguajes Libres de Contexto. Sabemos como especificarlos (Gramáticas Libres de Contexto). Sabemos como usarlos para resolver problemas dirigidos por sintaxis. Falta cómo reconocerlos... para la próxima clase!