Centro Universitario Valle de México Gramáticas Libres de Contexto Dra. Maricela Quintana López Elaborado por: Autómatas y Lenguajes Formales.

Slides:



Advertisements
Presentaciones similares
GRAMATICA LIBRE DE CONTEXTO
Advertisements

Ejemplo Práctico de un Compilador Pequeño
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Filminas Segunda semana
Compiladores e intérpretes
Compiladores e intérpretes Análisis Sintáctico III
Gramáticas, lenguajes y reconocedores
Gramáticas Libres de Contexto
Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Autómatas de pila (Pushdown automata)
Gramáticas.
Autómatas Finitos.
Lenguajes y Expresiones Regulares
Máquinas de Turing (MT)
Teoría de Autómatas y Compiladores
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
Tema 2.- Gramáticas independientes de contexto.
¿Cómo hacer para que una máquina comprenda el LN?
Organización de Lenguajes y Compiladores 1
Tema 2 Autómatas finitos 1. Autómata finito determinista
Tema 1.- Lenguajes. Gramáticas
4. Máquinas de Turing 4.1. Modelo básico.
ANALISIS SINTACTICO DESCENDENTE
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Teoría de lenguajes y compiladores
Tema 1.- Lenguajes. Gramáticas
Tema 2 Lenguajes Formales.
Introducción a la Teoría de Lenguajes Preparado por Manuel E. Bermúdez, Ph.D. Profesor Asociado University of Florida Curso de Compiladores.
Algoritmos para calcular el Conjunto Primero y el Conjunto Siguiente
Programación de sistemas
M.C. Meliza Contreras González
Análisis sintáctico LR: SLR (LR simple)
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Autómatas y Lenguajes Formales
ANALISIS SINTACTICO Parte I
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
Teoría de lenguajes y compiladores
Tema 2 Autómatas finitos 1. Autómata finito determinista
Lenguajes regulares Teoría del Autómata.
Teoría de lenguajes y compiladores Analizadores lexicográficos
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
MÁQUINAS DE TURING Teoría del Autómata.
Compiladores e intérpretes
COMPUTABILIDAD Y COMPLEJIDAD 1. Conceptos básicos (revisión). 2. Gramáticas independientes de contexto. 3. Propiedades de los lenguajes independientes.
Teoría de lenguajes y compiladores
Tomado de Sudkamp: Languages and Machines Cap. 6.
Lenguajes Formales y Autómatas
Autómatas de Pila (Pushdown Automatón)
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
Programación de Sistemas FEI – 2008
1 AFDAFN AF Gramáticas lineales derecha Expresiones regulares Tema 2 Método de los AF Método de las derivadas Sistemas de Ecuaciones Tema 1.
UNIVERSIDAD LATINA (UNILA)
1 Sebastián Argüello A60490 semana 3 Autómatas y compiladores CI-1322.
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
Unidad 3 Analizador Sintáctico
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION SUPERIOR UNIVERSIDAD VALLE DEL MOMBOY CARVAJAL EDO. TRUJILLO ENERO 2014.
República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Universidad Valle del Momboy Carvajal, Trujillo Alumnas Luzmila.
Maestría en Ciencias de la Computación Arquitectura de Computadoras
Unidad 2 Lenguajes, Expresiones Regulares, Autómatas
LENGUAJES GRÁMATICAS Y AUTÓMATAS
Sintaxis y Semántica. S.Takahashi Fases en el proceso de análisis de lenguajes Lexer Parser caracteres tokensrespuesta.
Tema 2 Autómatas finitos 1. Autómata finito determinista
Escuela Nacional de Antropología e Historia (ENAH)
Transcripción de la presentación:

Centro Universitario Valle de México Gramáticas Libres de Contexto Dra. Maricela Quintana López Elaborado por: Autómatas y Lenguajes Formales

Maricela Quintana López Unidad de Competencia III Objetivo: Conocer, utilizar y diseñar Gramáticas Libres de Contexto. Conocimientos:  Gramáticas Regulares  Gramáticas Libres de Contexto (GLC)  Árboles de derivación  Autómatas de Pila (AP)  Equivalencia entre GLC y AP.

Maricela Quintana López La Teoría de los lenguajes formales estudia los procedimientos de:  Especificación,  Reconocimiento, y  Manejo de conjuntos de cadenas formadas a partir de un alfabeto. Teoría de Autómatas y Lenguajes Formales

Lenguajes Un lenguaje es un conjunto de cadenas formadas por símbolos que cumplen ciertas propiedades. abb*

Maricela Quintana López Tipo de LenguajeMáquina que lo reconoce 3 : RegularesAutómatas Finitos 2 : Libres de ContextoAutómatas de pila 1 : Sensibles al contextoAutómatas de línea 0 : Sin restricciones Recursivamente enumerables Máquinas de Turing Jerarquía de Chomsky Clasificación de los lenguajes

Maricela Quintana López Teoría de Gramáticas  Una gramática es un sistema formal que permite generar tipos de lenguajes. Se define formalmente por sus 4 elementos: G = (V,T,P,S)

Maricela Quintana López G= (V, T, P, S) Variables o símbolos no terminales Símbolos terminales – Ponen las restricciones sintácticas. – Letras mayúsculas ó – Se puede transformar en una cadena de variables y/o terminales. – Elementos del alfabeto, letras minúsculas.

Maricela Quintana López G= (V, T, P, S) Reglas de producción o reescritura Símbolo inicial – Consisten de un patrón del lado izquierdo, una flecha y un patrón del lado derecho: A  aBc,  c | a – Variable a partir de la cual se inician las derivaciones, usualmente se utiliza S (start)

Maricela Quintana López Teoría de Gramáticas  Una gramática sirve para:  Especificar las reglas sintácticas del lenguaje.  Si una palabra no sigue estas reglas, entonces se dice que: no pertenece al lenguaje generado por la gramática.

Maricela Quintana López Ejemplo P: expresión  expresión + término expresión  expresión - término expresión  término término  término * factor término  término / factor término  factor factor  (expresión) factor  id G = { V = {expresión, término, factor}, T = {+, -,*,/,id}, P, S = expresión}

Maricela Quintana López Gramáticas Regulares Gramáticas de tipo 3 ó G3: son aquéllas en las que las producciones cumplen: 1.El lado izquierdo debe consistir en un solo no terminal 2.El lado derecho debe ser un terminal seguido de un no terminal, o un solo terminal, o la cadena vacía.

Maricela Quintana López  ={a,b,c}  Reglas:  Inicie con a, después dos b’s y Termine con c  única palabra del lenguaje: abbc G = {V={S}, T={a,b,c}, P, S} P: S  abbc Ejemplo

Maricela Quintana López  Expresión Regular: a (a|b) + c  S  aAc A  aA | bA | B B  a | b  S  aAc A  aA | bA | a | b Ejemplo

Maricela Quintana López  Genera la Gramática Regular correspondiente a la siguiente expresion regular  Expresión Regular: a + (a*|b + ) + c*  equivalente a: aa* (a*|bb*) + c* Ejercicio

Maricela Quintana López  Expresión Regular: a + (a*|b + ) + c*  Expresión Regular: aa* (a*|bb*) + c*  S  aA X C  A  aA | (equivalente a*)  X  AX | BX | A |B  B  bB | b (equivalente b + )  C  cC | (equivalente c*) Solución al Ejercicio

Maricela Quintana López Gramáticas Libres de contexto GLC (tipo 2 ó G2), libres de contexto, independientes del contexto. Son aquéllas en las que las producciones cumplen: 1.El lado izquierdo debe consistir en un solo no terminal 2.El lado derecho no tiene restricciones.

Maricela Quintana López Gramáticas sensibles al contexto GSC (tipo 1 ó G1) sensibles al contexto o dependientes del contexto. Son aquéllas en las que las producciones cumplen: 1.Las producciones son del tipo  2.|  |  |  | No son contractivas

Maricela Quintana López Gramáticas sin restricciones Lenguajes recursivamente ennumerables (tipo 0 ó G 0 ) sin restricciones.  Son aquéllas en las que las producciones no tienen ninguna restricción.

Gramáticas Libres de Contexto

Maricela Quintana López Gramáticas Libres de contexto GLC (tipo 2 ó G2), libres de contexto, independientes del contexto. Son aquéllas en las que las producciones cumplen: 1.El lado izquierdo debe consistir en un solo no terminal 2.El lado derecho no tiene restricciones.

Maricela Quintana López  La gramática G1 especifica el lenguaje formado por todas las cadenas sobre Σ = {a, b, c} que contienen a la subcadena cc. G1 = (V = {S, A, B}, T= {a, b, c}, P, S) donde: P: S  AccA A  BA | B  a | b | c Ejemplo

Maricela Quintana López  for ( ; ; ){ }  =  | >  ++ | --  ; | = + ;  a | b | c  1 | 2 | 3 Ejemplo

Maricela Quintana López Teoría de Gramáticas  Para determinar que una palabra pertenece al Lenguaje, es necesario poder derivar la palabra ó generar el árbol de derivación usando las reglas de la gramática.  Para visualizar la forma de las palabras se puede usar un árbol de la gramática.

Maricela Quintana López  Generadoras de lenguajes  A la aplicación de las reglas de producción se le llama derivación.  A  w en la cadena uAv produce uwv  Entonces w es derivable de v si existe una secuencia de aplicaciones de la regla tal que v  w Gramáticas *

Maricela Quintana López  Cada vez que se aplica una regla se obtiene una derivación.  La derivación de una palabra, se obtiene al aplicar varias reglas de producción partiendo del símbolo inicial. S  w Derivaciones

Maricela Quintana López  Ejemplo: G={{ },T={id, +, *, (, )}, P, }  donde P =  + | * | |( )|id Una derivación de (id+id)*id sería:  *  ( ) *  ( ) * id  ( + ) * id  ( + id )* id  (id + id) * id Ejemplo

Maricela Quintana López Derivaciones  Por la Izquierda (LL)  Se realizan sustituyendo siempre el símbolo no terminal más a la izquierda  Por la Derecha (LR)  Se realizan sustituyendo siempre el símbolo no terminal más a la derecha

Maricela Quintana López Derivaciones G = {V={S,A,B}, T={a,b,c}, P, S} donde P: S  AccA A  BA | B  a | b | c ¿abcc  a L (G)?  Derivación por la izquierda  S  AccA  BAccA  aAccA  aBAccA  abAccA  ab ccA  ab cc  abcc Si pertenece

Maricela Quintana López Derivaciones G = {V={S,A,B}, T={a,b,c}, P, S} donde P: S  AccA A  BA | B  a | b | c ¿abcc  a L (G)?  Derivación por la derecha  S  AccA  Acc  BAcc  BBAcc  BB cc  Bb cc  ab cc  abcc Si pertenece

Maricela Quintana López Reglas:  Inicie con a, siga con  a’s y b’s en medio (o nada) y termine con c.  Ejemplos de palabras : aabc, abbbc,ac aaaaabc, aaaaac, abbaababaabc G = { V = {S, A}, T = {a,b,c}, P, S } P:S  aAc A  aA | bA |  Ejemplo  ={a, b, c}

Maricela Quintana López S  aAc  aaAc  aabAc  aabaAc  aababAc  aababc S  aAc A  aA | bA |  Derivar aababc

Maricela Quintana López Ejercicio  Obtener las derivaciones por la izquierda y por la derecha para la siguiente entrada y Gramática G: E  E + E | E * E | ( E ) | - E | id Entrada: id + id * id + (id * id * – id)

Maricela Quintana López  Se realiza colocando una rama por cada uno de los símbolos en el lado derecho de la regla que se aplica Árbol de análisis sintáctico

Maricela Quintana López Árbol de análisis sintáctico

Maricela Quintana López  El lenguaje generado por una gramática G= {V,T,P,S} se denota por L (G) y se define formalmente como: L (G) = {w|w  T*, S  *w } Lenguaje de una Gramáticas

Maricela Quintana López  Ejemplos  {a i b i para i>0}  {a i bc 2i para i>0}  Los lenguajes libres de contexto (LLC) son reconocidos por autómatas de pila. Lenguajes Libres de Contexto

Maricela Quintana López  Gramática Libre de Contexto S  ASB | AB A  a B  b  Gramática Libre de Contexto S  aSb | ab L = {a i b i para i>0}

Maricela Quintana López  Los autómatas de pila (AP) son máquinas que permiten aceptar lenguajes libres de contexto.  Un AP es una máquina de estados finitos que aumenta su poder de reconocimiento usando una pila (memoria) cuyas operaciones son PUSH y POP. Autómatas de Pila y LLC

Maricela Quintana López  Formalmente se define como: M = (E, , , , E 0, F) Donde los nuevos términos :  = Alfabeto de la pila  : E  (   )  (   )  [ E  (   ) ]* Edo. Símbolo Tope de la pila Edo. Cambio en la pila Autómata de Pila

Maricela Quintana López  (E i,a,A) = { [E j,B], [E k,C]}  Indica que dos transiciones son posibles a partir del estado E i, procesando el símbolo a y con A en el tope de la pila  (E i,a,A) = { [E k,C]}  Causa: cambiar al estado E k ; procesar el símbolo a; quitar A del tope de la pila (POP), y meter C en la pila (PUSH). Función de transición

Maricela Quintana López  (E i,a,A) = { [E j,B], [E k,C]}  (E i,,A) = { [E i, ] } Diagrama de estado Ei Ej Ek a A/B a A/C Ei A/

Maricela Quintana López  (E i,, ) = { [E i,A] }  (E i,a, ) = { [E j, ] } Diagrama de estado Ei / A EiEj a /

Maricela Quintana López L(G) = { wcw R | w  (0 + 1)* }  Palíndromes en ( 0 + 1)* cuyo punto intermedio está marcado por un caracter especial c  w R = reversa de w M = ( {q 1, q 2 }, {0, 1}, {R, B, G}, , q 1, q 2 ) Ejemplo

Maricela Quintana López 0,R/BR 0,B/BB Diagrama de Transición Q 1 Q 2 I,G/GG 0,G/BG I,R/GRI,B/GB C,B/B C,G/G C,R/R 0,B/Є Є,R/Є 1,G/Є R/BR Tope=R /(cambia por) BR equivale a PUSH B/  Tope=B /(Cambia por)  equivale a un POP

Maricela Quintana López (E j,aw,Z  ) ├ * (E k,w,β  ) ssi  (E j,a,Z) = (E k,β) (q 1,010c010,R) ├ (q 1,10c010,BR) ├ (q 1,0c010,GBR) ├ (q 1,c010,BGBR) ├ (q 2,010,BGBR) ├ (q 2,10,GBR) ├ (q 2,0,BR) ├ (q 2, ,R) ├ (q 2, ,  ) Descripciones Instantáneas

Maricela Quintana López  Descripciones para (1,010c010, ) ├ (1,10c010,B) ├ (1,0c010,GB) ├ (1,c010,BGB) ├ (2,010,BGB) ├ (2,10,GB) ├ (2, 0, B) ├ (2, ,  ) Simplificadamente 1 c / 2 0 B / 1 G / 0 / B 1 / G

Maricela Quintana López  Estado Final L (M) = { w | (E i,w,  ) ├ * (E j, ,γ); E j  F, γ  *}  Pila Vacía L (M) = { w | (E i,w,  ) ├ * (E j, ,  ); E j  E}  Estado y Pila Vacía L (M) = { w | (E i,w,  ) ├ * (E j, ,  ); E j  F} ¿Cuándo se acepta una palabra?

Maricela Quintana López Genera la gramática o el autómata para: 1.{a n b 2n para n  0 } 2.{a n b 2n para n>0 } 3.{w | w  {a,b}* y el #a’s = #b’s} 4.{a m b n para n,m>0 y m > n } 5.{a m b n para n,m>0 y n > m } Ejercicios

Maricela Quintana López  Sea G= (V,T,P,S) una GLC en forma normal de Greibach que acepta L (G). Existe un APN M= ({q0,q1}, Σ,V  Σ, , q0,, {q1}) con transiciones  (q 0,a,  ) = { [q 1,w] | S  aw  P }  (q 1,a,A) = { [q 1,w] | A  aw  P y A  V}  (q 0, ,  ) = { [q 1,  ] } si S    P  (q 1,a,a) = { [q 1,  ] } si A    P, y  contiene a APN a partir de una GLC

Maricela Quintana López  Existe una forma de generar la gramática a partir del Autómata de Pila, pero por cuestiones de tiempo sale del alcance de este curso. GLC a partir de un APN

Maricela Quintana López Referencias  Sudkamp Thomas. Languages and Machines: An introduction to the theory of Computer Science. 3rd Edition. Addison Wesley, 2005  Hopcroft J., Motwani R., Ullman J. Introduction to Automata Theory, Languages, and Computation. 3rd Edition. Addison Wesley, 2006

Maricela Quintana López Referencias  Sipser Michael. Introduction to the theory of computation. 2nd Edition, CENGAGE Learning 2005

Maricela Quintana López Guion Explicativo  Este material sirve para presentar las Gramáticas y sus diferentes tipos de acuerdo a los lenguajes. Se hace mayor énfasis en las gramáticas libres de contexto, las derivaciones, árboles de derivación o sintaxis, así como en los autómatas de pila.  Las diapositivas deben verse en orden, y se estima que se revisen en aproximadamente 9 horas.  A continuación se presenta una tabla para relacionarlas con los objetivos y contenidos del curso.

Maricela Quintana López Guion Explicativo