GRAMÁTICAS LIBRES DE CONTEXTO

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

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

Ciencias de la Computación I

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.

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

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

GRAMATICAS LIBRES DEL CONTEXTO

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

Proyecto Intermedio Algoritmo de Earley

Procesadores de Lenguaje

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

Lenguajes y Gramáticas

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

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Expresiones regulares, gramáticas regulares

SSL Guia de Ejercicios

Curso Básico de Computación

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

1. Cadenas EJERCICIO 1

Gramáticas libres de contexto

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 2: LENGUAJES

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

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

CAPITULO 5: GRAMÁTICAS

LENGUAJES Y GRAMÁTICAS

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

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

Curso Básico de Computación Preliminares

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

Expresiones regulares, gramáticas regulares Unidad 3

Unidad 4. Autómatas de Pila

Conceptos básicos sobre gramáticas

Gramaticas Independientes del Contexto, ejemplos y ejercicios

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

Lenguajes Libres del Contexto

La Ambigüedad en el Parsing

Autómata de Pila (AP, PDA) Tema 18

Unidad 4. Autómatas de Pila

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Universidad de Valladolid

DEFINICIONES BÁSICAS E INTRODUCCIÓN A LENGUAJES FORMALES

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

Lenguajes Incontextuales

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

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

Clase 17: Autómatas de pila

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

Las Gramáticas Formales

Lenguajes independientes de contexto o incontextuales

LENGUAJES Y GRAMÁTICAS

09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

Sintaxis y Semántica. Tema 3. Sintaxis y Semántica. Expresiones y Lenguajes Regulares. Dr. Luis A. Pineda ISBN:

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES

16 Análisis sintáctico I

Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas

Lógica - Conjuntos inductivos

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

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

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

22, 23 y 24 Análisis sintáctico V Compiladores - Profr. Edgardo Adrián Franco Martínez

08 Análisis léxico IV

Lección 3: Fundamentos para el análisis sintáctico

MANEJO DE EXPRESIONES REGULARES

Tema 4: Análisis sintáctico ascendente. Análisis sintáctico ascendente: un ejemplo

Expresiones Regulares

Diseño de Compiladores I. Estructura General de un Compilador

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

TEORÍA DE CONJUNTOS.

Paréntesis: Una aplicación en lenguajes formales

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

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

Principios de Computadoras II

DEL AUTÓMATA FINITO A LA EXPRESIÓN REGULAR

Teoría de Lenguajes. Clase Teórica 1 Gramáticas y Jerarquía de Chomsky. Primer cuartimestre 2016

Algunos ejercicios sobre modelado sintáctico en exámenes de Compiladores e intérpretes

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES

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

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

Tres versiones de Pal. Sesión 19. Una máquina para aceptar Pal El lenguaje: Tabla de transición para Pal. Más de un siguiente estado.

INDUCCIÓN. Inducción - 2

La Forma Normal de Chomsky

Alfabetos, cadenas y lenguajes

Lenguajes formales y autómatas

Matemáticas. ticas Discretas. Lenguajes y Gramáticas. Tenemos dos clases de lenguaje: Lenguaje Formal

Procesadores de Lenguaje

ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa

Lección No.4: Relación de equivalencia

Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003

Analizador De léxico. V A R i : I N T E G E R ; \n...

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno

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

ANÁLISIS LÉXICO EXPRESIONES REGULARES

TEORÍA DE AUTÓMATAS Y LENGUAJES

ARITMÉTICA MODULAR. Unidad 1

John Venn Matemático y filósofo británico creador de los diagramas de Venn

Tema 6: Máquina de Turing

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

Máquinas de Turing, recordatorio y problemas

Tema 2 Gramáticas y Lenguajes Libres de Contexto

Transcripción:

GRAMÁTICAS LIBRES DE CONTEXTO

Definición Una gramática libre de contexto (GLC) es una descripción estructural precisa de un lenguaje. Formalmente es una tupla G=<Vn, Vt, P, S>, donde Vn es el conjunto finito de símbolos no terminales Vt es el conjunto finito de símbolos terminales (Vn Vt = ) P es el conjunto finito de producciones que se pueden ver como relaciones definidas en Vn (Vn Vt*) S es el símbolo inicial de la gramática. Las producciones tienen la forma A α donde A Vn y α es una expresión ya sea compuesta por símbolos no terminales como terminales (α (Vt Vn)*) ó la cadena nula Ɛ

Una producción puede verse como una regla de reescritura que indica cómo reemplazar símbolos no terminales por la expresión correspondiente en la parte derecha de la producción. Así partiendo de algún A Vn, se pueden aplicar las reglas de P hasta alcanzar a una expresión compuesta únicamente por símbolos terminales. A ésta expresión se le denomina frase o lexema. A las expresiones formadas por símbolos terminales y no terminales se les denomina formas de frase.

Convenciones Letras romanas mayúsculas (A, B, C, D, E, S) representan símbolos no terminales (variables). Letras romanas minúsculas (a, b, c, d, e), dígitos o expresiones encerradas entre comillas simples representan símbolos terminales. X, Y, Z, W representan terminales o no terminales u, v, w, x, y, z representan cadenas de terminales (frases). Letras griegas minúsculas α, β, γ representan formas de frases.

Derivaciones Para cualquier GLC G, si A β en P y α, γ Vn Vt *, entonces αaγ αβγ, lo cual se lee la forma de frase αaγ deriva directamente a αβγ. Si se tiene que para α, α 1 3,, α k Vn Vt *, (k >=1), α 1 α 3 α k se dice que α 1 deriva a α k, lo cual se escribe α 1 αk La relación propiedades: entre formas de frase tiene las siguientes α α para cualquier α, Si α β y β γ entonces α γ es la cerradura reflexiva y transitiva de.

Definición Lenguaje Libre de Contexto Dada una GLC G, se define al lenguaje generado por G como el conjunto de frases derivadas por G partiendo del símbolo inicial. L(G)= { w w Vt* y S w} Un lenguaje libre de contexto es aquel generado por alguna GLC.

Ejemplo Sea Go= <Vno, Vto, Po, S> definido por: La derivación de la frase 4-3+1, exp exp + dig exp dig + dig dig dig + dig 4 dig + dig 4 3 + dig 4 3 + 1 Por lo tanto la frase 4-3+1 pertenece al lenguaje generado por Go.

Tipos de derivación En cada paso de una derivación se pueden aplicar las reglas (producciones) en cualquier orden, por lo cual se debe elegir: 1. Qué simbolo no terminal reducir, 2. Si la regla de producción para ese no terminal elegido tiene varias alternativas, cual de ellas usar. Se puede elegir siempre el no terminal más a la izquierda en cada paso, la derivación así obtenida se llama derivación más a la izquierda: waγ wβγ, para una A β P. Si α deriva a β mediante una derivación por la izquierda se escribe α β mi En el caso de elegir el no terminal más a la derecha se llama derivación más a la derecha o derivación canónica: γaw md γβw

La derivación de la frase 4-3+1 por más a la derecha exp exp + dig exp + 1 exp dig + 1 exp 3 + 1 dig 3 + 1 4 3 + 1 Cuando, para la misma expresión es posible encontrar más de una derivación más por la izquierda (o por la derecha), se dice que la gramática es ambigua.

Ejercicio Sea G 1 = < Vn 1, Vt 1,P 1, exp> una GLC. Demuestre que G 1 es ambigua.

Solución Podemos construir más de una derivación por la izq para 5-8*2.

Ambigüedad La ambigüedad significa que una expresión del lenguaje puede tener más de una interpretación, lo cual no esta permitido. En el ejemplo, la ambigüedad está asociada con los operadores * y -, por lo que se debe establecer su asociatividad y precedencia para evitar la ambigüedad.

Ejercicios

Ejercicios Construya una GLC que genere cada uno de los siguientes lenguajes: 1. Listas de dígitos separados por comas. 2. Cadenas que representen números en punto flotante al estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra) en lenguaje tipo C o Pascal. 4. Palabras palíndromas (que se leen de igual forma en ambos sentidos) sobre el alfabeto {a,b}. 5. El conjunto de todas las palabras sobre el alfabeto {a,b} que tienen 2 veces más a s que b s. 6. Números impares en binario.

Ejercicio Obtener la gramática que representa al lenguaje {a n b 2n n>=0}

Solución S asbb abb Ɛ