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

Documentos relacionados
Ciencias de la Computación I

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I

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

GRAMATICAS LIBRES DEL CONTEXTO

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

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

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

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

LENGUAJES Y GRAMÁTICAS

Proyecto Intermedio Algoritmo de Earley

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

Conceptos básicos sobre gramáticas

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

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

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

TITULACIÓN Ingeniero Técnico en Informática de Sistemas ASIGNATURAS DE SEGUNDO CURSO DEL PLAN 1999 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES PROGRAMA:

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

INAOE. Gramáticas Libres de Contexto. Definición formal de CFGs. Derivaciones usando. Derivaciones. izquierda y. derecha.

GRAMÁTICAS LIBRES DE CONTEXTO

16 Análisis sintáctico I

Compiladores: Sesión 3. Análisis léxico, expresiones regulares

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.

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

Analizadores sintácticos LR(0) y SLR

Lenguajes Incontextuales

ESCUELA: UNIVERSIDAD DEL ISTMO

Procesadores de Lenguaje

Curso Básico de Computación

Alfabetos y cadenas (1) Alfabetos y cadenas (2) Lenguajes. Propiedades de la concatenación:

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS. NOMBRE DEL CURSO: Lenguajes Formales y de Programación

Gramáticas Libres de Contexto

Lenguajes Libres del Contexto

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

Ciencias de la Computación I

Teoría de Lenguajes. Gramáticas incontextuales

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto

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

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

CAPITULO 5: GRAMÁTICAS

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

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

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

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

Ciencias de la Computación I

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

Horas teóricas: Horas practicas: Área de conocimiento a la que pertenece

Gramáticas independientes del contexto TEORÍA DE LA COMPUTACIÓN LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

INSTITUTO POLITÉCNICO NACIONAL

INTRODUCCIÓN A LOS LENGUAJES

Analizador Sintáctico Ascendente

Desarrollo de lenguajes y Compiladores [MII-771] Capítulo 1: Lenguajes y Gramáticas Formales

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

Generalidades sobre lenguajes.

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

Teoría de Lenguajes. Propiedades y caracterizaciones de los lenguajes incontextuales

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

Curso Básico de Computación

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

Teoría de Autómatas, Lenguajes Formales y Gramáticas

Capítulo 9. Introducción a los lenguajes formales. Continuar

UNIVERSIDAD TECNOLOGICA DE PEREIRA FACULTAD DE INGENIERIAS

UNIVERSIDAD DE GUADALAJARA

Tema 3: Gramáticas Formales. Informática Teórica I

Autómatas de Pila y Lenguajes Incontextuales

Autómatas de Estados Finitos

14 Lenguajes y gramáticas II

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

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

Definición de la sintaxis (1) Definición de la sintaxis (2) Definición de la sintaxis (3)

Expresiones Regulares

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

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:

Teoría de la Computación y Leguajes Formales

Teoría de Autómatas y Lenguajes Formales Equivalencia de Conjuntos Pruebas por Inducción

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación

1.-DEFINE EN QUE CONSISTEN LAS GRAMÁTICAS LIBRES DE CONTEXTO

Curso Básico de Computación Preliminares

Propiedades de lenguajes independientes del contexto

Teoría de Autómatas y Lenguajes Formales.

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA

DATOS DE IDENTIFICACIÓN DEL CURSO

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

Tema: Autómata de Pila

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas

Paréntesis: Una aplicación en lenguajes formales

MODELOS DE COMPUTACIÓN CRISTIAN ALFREDO MUÑOZ ALVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACON PEÑA EDUARDO GONZALES PULGARIN

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

Las Gramáticas LL. Gramáticas con Parsing Eficiente. Universidad de Cantabria

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

Jerarquía de Chomsky. 1. Clasificación de gramáticas. 2. Clasificación de lenguajes. 3. Gramáticas regulares. 5. Gramáticas dependientes del contexto

Teoría de la Computación y Lenguajes Formales

Lenguajes y Compiladores Análisis Léxico

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

Transcripción:

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

Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison Wesley. 2002. capítulo 5 Sudkamp, Thomas A. Languages and machines : an introduction to the theory of computer science. Addison-Wesley Publishing Company, 1998. capítulos 3 y 4 Tema 4: Gramáticas independientes del contexto 2

Introducción Lenguajes independientes del contexto (LIC) Gramáticas independientes del contexto (GIC) implementación de analizadores sintácticos descripción de formatos de documentos: XML Árboles sintácticos: representan gráficamente la estructura de la gramática Autómatas con pila Tema 4: Gramáticas independientes del contexto 3

Un ejemplo de GIC Palíndromo: w = w R Este lenguaje no es regular. Se comprueba aplicando el lema del bombeo a la cadena 0 n 10 n Para generar el lenguaje de los palíndromos con el alfabeto {0, 1}: Base: ε, 0, 1 son palíndromos Paso inductivo: si w es palíndromo, también lo son 0w0 y 1w1 Reglas que definen la gramática que genera el lenguaje de los palíndromos con alfabeto {0, 1}: P ε P 0 P 1 P 0P0 P 1P1 En notación compacta: P ε 0 1 0P0 1P1 Tema 4: Gramáticas independientes del contexto 4

Definición de gramática Las GIC están formadas por cuatro componentes: el alfabeto de símbolos terminales, que son los símbolos finales del lenguaje el conjunto finito de símbolos no terminales o variables, que permiten representar subconjuntos del lenguaje o estados intermedios en la generación de las palabras del lenguaje el símbolo inicial o axioma de la gramática (una de las variables), a partir de cual se obtiene cualquier palabra del lenguaje un conjunto finito de producciones o reglas, que indican las transformaciones posibles desde los símbolos no terminales a las palabras del lenguaje. Las reglas están formadas por: una variable, cabeza de la producción el símbolo de producción una cadena de 0 o más símbolos terminales y variables, que son el cuerpo de la producción las producciones son de la forma B x, donde B V, y x ( V T )* G = (V, T, P, S) ejemplo: G palíndromo = ({P}, {0, 1}, A, P), donde A son las producciones o reglas: P ε 0 1 0P0 1P1 Tema 4: Gramáticas independientes del contexto 5

Definición de gramática (II) Ejemplo: G = ({E, I}, {+, *, (, ), a, b, 0, 1}, P, E), donde P es el conjunto de producciones: Tema 4: Gramáticas independientes del contexto 6

Derivaciones de una gramática Aplicando las producciones de una GIC se infieren las cadenas que están en el lenguaje Sea G = (V, T, P, S), y αaβ una cadena de terminales y variables, donde A está en V, y α y β están en ( V T )*. Sea A γ una producción de G. Entonces: αaβ αγβ Extensión a varios pasos de derivación α * G β β γ si y, entonces Ejemplo: inferencia de a * (a + b00) G G α * G γ Tema 4: Gramáticas independientes del contexto 7

Derivaciones izquierda y derecha Derivación más a la izquierda: Derivación más a la derecha: Ejemplo: * mi * md E * a *( a mi + b00) * E a *( a md + b00) Tema 4: Gramáticas independientes del contexto 8

Lenguaje de una gramática Si G = (V, T, P, S) es una GIC, el lenguaje de G será: L(G) = {w que están en T * S w } * G Notación: a, b,..., +, (,...: símbolos terminales A, B,...: variables..., w, x, y, z: cadenas de terminales..., X, Y, Z: terminales o variables α, β, γ,...: cadenas de terminales y variables Tema 4: Gramáticas independientes del contexto 9

Formas sentenciales Si G = (V, T, P, S) es una GIC, cualquier cadena α en * tal que S α es una forma sentencial El lenguaje L(G) está formado por las formas sentenciales que están en T * : se denominan sentencias Ejemplo: ( V T )* Tema 4: Gramáticas independientes del contexto 10

Problemas 1. Diseñar las GIC para los siguientes lenguajes 1. {0 n 1 n n 1 } 2. {a i b j c k i j o j k } 2. La siguiente gramática genera el lenguaje de expresiones regulares 0 * 1(0+1) * : S A1B, A 0A ε, B 0B 1B ε. Obtener las derivaciones más a la izquierda y más a la derecha para la cadena: 00101 3. Sea T = {0, 1, (, ), +, *,, e}. Construir una GIC con el conjunto de terminales T que genere expresiones regulares válidas con el alfabeto {0, 1} (considerar e como ε). Tema 4: Gramáticas independientes del contexto 11

Árboles de derivación Representación de las derivaciones en forma de árbol muestra la agrupación de los símbolos de una cadena terminal en subcadenas utilización en los compiladores para representar la estructura sintáctica del programa fuente Terminología los árboles son conjuntos de nodos unidos entre sí por la relación padrehijo. Un nodo tiene como máximo un padre y cero o más hijos nodo raíz: no tiene padre hojas: nodos sin hijos nodos interiores: nodos que no son hojas el hijo de un hijo de...: descendiente el padre de un padre de...: antepasado los hijos de un nodo se ordenan de izquierda a derecha Tema 4: Gramáticas independientes del contexto 12

Construcción de árboles de derivación Sea G = (V, T, P, S). El árbol de derivación para G tendrá las siguientes características: cada nodo interior está etiquetado con una variable cada hoja está etiquetada con una variable, un terminal o ε. Si es ε, tiene que ser el único hijo de su padre si un nodo interior está etiquetado con A, y sus hijos están etiquetados con X 1,X 2,..., X k (de izquierda a derecha), entonces A X 1 X 2...X k es una producción de P Ejemplos: E I + E * P 0110 * Tema 4: Gramáticas independientes del contexto 13

Resultado de un árbol de derivación Concatenando la hojas de un árbol desde la izquierda se obtiene la cadena resultado del árbol, que se deriva desde la raíz Son especialmente importantes los árboles de derivación tales que: su resultado es una cadena terminal la raíz está etiquetada con el símbolo inicial Estos árboles tienen como resultado las cadenas del lenguaje generado por esa gramática Tema 4: Gramáticas independientes del contexto 14

Un ejemplo * E a *( a + b00) Tema 4: Gramáticas independientes del contexto 15

Inferencia, derivaciones y árboles Dada G = (V, T, P, S), las siguientes afirmaciones son equivalentes: el procedimiento de inferencia recursiva determina que la cadena terminal w pertenece al lenguaje de la variable A A * w * A w mi * A w md Existe un árbol de derivación con la raíz etiquetada con A y resultado w Tema 4: Gramáticas independientes del contexto 16

Ambigüedad Una GIC G = (V, T, P, S) es ambigua si existe al menos una cadena w en T * para la que podemos encontrar dos árboles de derivación distintos con la raíz etiquetada con S y cuyo resultado es w La existencia de derivaciones diferentes para una cadena no supone un defecto en la gramática, la existencia de árboles de derivación diferentes sí supone un problema E E + E I + E a + E a + I a + E E + E E + I E + b I + b a + b b Tema 4: Gramáticas independientes del contexto 17

Eliminación de la ambigüedad No existe un algoritmo que nos indique si una GIC es ambigua Existen LIC que sólo tienen GIC ambiguas: inherentemente ambiguos Para las construcciones de los lenguajes de programación comunes existen técnicas para la eliminación de la ambigüedad Ejemplo: causas de ambigüedad en la siguiente gramática no se respeta la precedencia de operadores una secuencia de operadores idénticos puede agruparse desde la izquierda y desde la derecha. Lo convencional es agrupar desde la izquierda Tema 4: Gramáticas independientes del contexto 18

Eliminación de la ambigüedad (II) Ejemplo: modificamos la gramática para forzar la precedencia Tema 4: Gramáticas independientes del contexto 19

Derivaciones como forma de expresar ambigüedad En una gramática no ambigua las derivaciones más a la derecha y más a la izquierda serán únicas Teorema: para toda gramática G = (V, T, P, S) y toda cadena w en T *, w tiene dos árboles de derivación distintos si y sólo si w tiene dos derivaciones más a la izquierda distintas desde S lo mismo para las derivaciones más a la derecha Tema 4: Gramáticas independientes del contexto 20

Derivaciones como forma de expresar ambigüedad (II) Ejemplo: Tema 4: Gramáticas independientes del contexto 21

Problemas finales 1. Un palíndromo es una cadena que se lee igual de izquierda a derecha que de derecha a izquierda. Por ejemplo, las palabras radar, oso y abba son palíndromos. Dado el alfabeto Σ = {a, b}, determinar una gramática que describa palíndromos. La gramática debería generar palabras como abba, aba, bb, babab, a, b,..., y ε. 2. Determinar una gramática que genere el lenguaje L = {a i b j c k i=j o j=k, i, j, k > 0}. 3. Determinar una gramática que genere el lenguaje L = {a i b i a j b j i, j > 0}, Tema 4: Gramáticas independientes del contexto 22