TRADUCTORES E INTERPRETADORES

Documentos relacionados
Se pueden agrupar las reglas que tienen la misma parte izquierda:

La Forma Normal de Chomsky

Cátedra Sintaxis y Semántica del Lenguaje

TEMA 6 GRAMÁTICAS INDEPENDIENTES DEL CONTEXTO

Gramáticas de Atributos

Introducción. Análisis Semántico. José M. Castaño. Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas

TRADUCTORES E INTERPRETADORES

16 Análisis sintáctico I

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3.

18 Análisis sintáctico III Compiladores - Profr. Edgardo Adrián Franco Martínez. Clasificación de métodos de análisis sintáctico Análisis descendente

ANÁLISIS SEMÁNTICO ETDS VS DDS

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

14 Lenguajes y gramáticas II

LENGUAJES Y GRAMÁTICAS

PROGRAMA DE LABORATORIO POS-REQUISITO: Primer Semestre 2019 Ing. Mario José Bautista Fuentes AUXILIAR: Nery Galvez

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Gramáticas tipo 0 o Estructura de frase En este tipo de gramáticas no hay restricción en su producciones y tienen la forma siguiente.

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

Tema 5. Análisis semántico

Procesadores de Lenguajes. Análisis sintáctico. Analizadores descendentes

Analizadores sintácticos LR(0) y SLR

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE: POST-REQUISITO:

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES

UNIVERSIDAD DE GUADALAJARA

Traducción Dirigida por Sintaxis

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

Tema 5: Autómatas a pila. Teoría de autómatas y lenguajes formales I

ANÁLISIS SINTÁCTICO I ANÁLISIS SINTÁCTICO DESCENDENTE LL(1)


Qué es el análisis semántico?

Lenguajes Incontextuales

Tema 5: Traducción dirigida por la sintaxis

Procesadores de Lenguajes. Análisis sintáctico. Gramáticas libres de contexto

AMBIENTES DE COMPILACION

Eliminación de Símbolos Inútiles

Teoría de Autómatas y Lenguajes Formales.

Lenguajes y Compiladores Traducción Dirigida por la Sintaxis

Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis

Gramáticas Libres de Contexto

Tema 5 (2 a parte): Traductores ascendentes. Algoritmo de análisis ascendente. Procesamiento de Lenguajes. E E op T E T T num

Tema 5 (2 a parte): Traductores ascendentes

Gramáticas Independientes del Contexto (GIC)

Compiladores: Sesión 15. Análisis semántico, traducción dirigida por sintaxis

ANÁLISIS SINTÁCTICO I GRAMÁTICAS

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013

TEMA 3: ANÁLISIS SEMÁNTICO

Clase 15: GLC s limpias y bien formadas

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE:

Compiladores e Intérpretes Análisis Semántico I

Traducción dirigida por la sintaxis

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

Tema 1.2. Un lenguaje mínimo y su procesador: Gramáticas de atributos y tabla de símbolos

Propiedades de lenguajes independientes del contexto

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Pontificia Universidad Católica del Ecuador

COMPILADORES. Tema 4. Análisis semántico

Generación de Código Intermedio

PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 4

Sintaxis y Semántica. Un repaso

CUP. Diseño de compiladores. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP 20/04/2014

B b A. Notar que las gramáticas utilizadas son sin recursión por la izquierda:

Procesadores de Lenguaje

Clase 11: Gramáticas. Solicitado: Ejercicios 09: Gramáticas

Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars)

Lenguajes y Compiladores Análisis Sintáctico Parte II

Más sobre gramáticas independientes de contexto o incontextuales

Teoría de la Computabilidad

1. Cadenas EJERCICIO 1

Conceptos básicos sobre gramáticas

Curso Básico de Computación

Tema 6: Compiladores e intérpretes. Teoría de autómatas y lenguajes formales I

LENGUAJES Y GRAMÁTICAS

GRAMÁTICAS LIBRES DE CONTEXTO

Análisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA POR COMPETENCIAS I. DATOS DE IDENTIFICACIÓN

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Temas. Objetivo 07:00

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Análisis sintáctico Analizadores descendentes

Ciencias de la Computación I

Hacia las Gramáticas Propias

CAPITULO 5: GRAMÁTICAS

Procesadores de lenguaje

ANÁLISIS SINTÁCTICO II LR1

Construcción de tablas de análisis sintáctico LL(1)

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 4

Introducción a la Lógica y la Computación

DATOS DE IDENTIFICACIÓN DEL CURSO

17 Análisis sintáctico II Compiladores - Profr. Edgardo Adrián Franco Martínez. Gramáticas limpias y bien formadas

Sea G = (V N, V T, S, P) una gramática libre de contexto, un árbol es un árbol de derivación para G si:

Análisis semántico I Traducción dirigida por la sintaxis

Complejidad Computacional

Transcripción:

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!