Tema 1.- Lenguajes. Gramáticas

Slides:



Advertisements
Presentaciones similares
CONJUNTOS El fundamento mas importante para el estudio de los lenguajes y autómatas es la Teorıa de Conjuntos. En efecto, siempre que hablemos de “formalizar”
Advertisements

Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Gramáticas.
Diseño de AFN’s.
Lenguajes y Expresiones Regulares
CADENAS Y LENGUAJES.
Tema 2.- Gramáticas independientes de contexto.
Tema 3 Propiedades de los lenguajes independientes de contexto
DEPARTAMENTO DE MATEMÁTICAS
DEPARTAMENTO DE MATEMÁTICAS
ANALIZADOR SINTACTICO
Expresiones regulares
Tema 2 Autómatas finitos 1. Autómata finito determinista
Relaciones de equivalencia
ANALISIS SINTACTICO DESCENDENTE
Teoría de conjuntos Un conjunto es una colección o clase de objetos bien definidos y diferenciables entre sí. Los conjuntos pueden ser finitos o infinitos.
Lenguajes Regulares Curso de Compiladores Manuel E. Bermúdez, Ph.D.
Ciencias de la Computación I
La derivada de la función inversa y de funciones especiales
5. Propiedades de Cierre de los lenguajes regulares
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
Teoría de Conjuntos Prof. Carlos Coronel R..
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
CONTENIDO CONJUNTOS RELACIONES FUNCIONES CONJUNTOS.
TEMA 5 PROBABILIDAD.
MATEMATICA BASICA 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.
OPERACIONES CON ENTEROS
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.
COMPUTABILIDAD Y COMPLEJIDAD 1. Conceptos básicos (revisión). 2. Gramáticas independientes de contexto. 3. Propiedades de los lenguajes independientes.
TEÓRIA DE CONJUNTOS.
Tomado de Sudkamp: Languages and Machines Cap. 6.
Gramáticas Formales Cadenas y Lenguajes.
Lenguajes Formales y Autómatas
TEÓRIA DE CONJUNTOS Docente: Jesús Huaynalaya García.
La integral Determina la antiderivada más general.
Enteros, reales Álgebra Superior.
Estudios Profesionales para la Empresa
Propiedades de las operaciones
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
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.
Teoría de lenguajes y compiladores
Apuntes 2º Bachillerato C.S.
TEMA 2: NÚMEROS ENTEROS.
CLASE 27 A  B =  ACB A  B = C A B A  B = A A B A  B = B A B.
TEÓRIA DE CONJUNTOS Profesor: Ing. Oscar Guaypatin Pico.
MATRICES.
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
Capítulo 3: Conjuntos Autor: José Alfredo Jiménez Murillo.
DIFERENCIA SIMÉTRICA DE CONJUNTOS Operaciones con Conjuntos
Unidad 3 Analizador Sintáctico
Números Letras Signos de operación: Valor numérico a a + 4b
NUMEROS REALES. VALOR ABSOLUTO. DESIGUALDADES
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.
Teoría de Conjuntos Dr. Rogelio Dávila Pérez
TEÓRIA DE CONJUNTOS.
INTRODUCCIÓN AL ALGEBRA CONJUNTOS NUMÉRICOS. LOS NUMEROS RACIONALES ( ℚ )
Sintaxis y Semántica. S.Takahashi Fases en el proceso de análisis de lenguajes Lexer Parser caracteres tokensrespuesta.
Transcripción de la presentación:

Tema 1.- Lenguajes. Gramáticas 1. Definiciones. 2. Operaciones con lenguajes: -Booleanas. -Concatenación. Potencia. Cierre estrella. -Cocientes. -Reverso. -Sustitución. Homomorfismo. Homomorfismo inverso. 3. Gramáticas. 4. Tipos de gramáticas. 5. Propiedades de cierre.

 n : conjunto de todas las palabras de longitud n sobre  1. Definiciones. Alfabeto Palabra, cadena o frase Palabra vacía Ej.  = {a, b} Ej. x = abbab  Longitud de una palabra 0 si x =  | x | = | y | + 1 si x = ya (con a  , y palabra sobre  )  n : conjunto de todas las palabras de longitud n sobre  Lenguaje: cualquier subconjunto de  * . Concatenación: Si x = a1a2...am e y = b1b2...bn se define xy = a1a2...amb1b2...bn Propiedades. 1. Asociativa 2. Elto. neutro ()

2. Operaciones con lenguajes. -Booleanas. Unión L1L2 ={x   * : x  L1  x  L2} Intersección L1L2 ={x   * : x  L1  x  L2} Complementación L = {x   * : x  L} Diferencia L1 - L2 = L1  L2 Diferencia simétrica L1  L2 = (L1 - L2 )  (L1 - L2 )

-Concatenación. Potencia. Cierre estrella. -Concatenación de lenguajes. L1L2 = {x  y   * : x  L1  y  L2} Propiedades. -No conmutativa L1L2  L2L1 -Asociativa L1(L2  L3) = (L1  L2) L3 -Anulador L1 =  -Distributiva respecto de la unión L1(L2  L3) = L1L2  L1L3 -No distributiva resp. intersección L1(L2  L3)  L1L2  L1L3 Ej: L1= {a, ab}, L2= {a}, L3= {ba}

-Potencia. Cierre estrella. Cierre positivo - Potencia de un lenguaje. {} si n = 0 L n = L n -1L si n > 0 -Cierre estrella. -Cierre positivo. Relación.

-Propiedades. 1. 2. 3. 4. 5. 6. 7. 8.

-Cociente de un lenguaje por una palabra. -Por la derecha -Por la izquierda -Propiedades. 1. 2. 3. 4. 5. 6.

-Cociente de lenguajes. -Por la derecha -Por la izquierda

-Reverso de una palabra. Si x = a1a2...am se define xr = amam-1...a1. -De manera recursiva x si x =  xr = ayr si x = ya, y   * , a   -Propiedades 1.- (xy)r= yrxr 2.- (x r)r= x -Reverso de un Lenguaje. L r = {x r: x  L} -Propiedades 1.- (L1L2)r= L2r L1r 2.- (L r)r= L

-Dados los alfabetos  y  se define -Sustitución. Homomorfismo. Homomorfismo inverso  Sustitución -Dados los alfabetos  y  se define -Extensión a palabras (sustitución): Sustitución en un lenguaje  Homomorfismo -Dados los alfabetos  y  un homomorfismo es h:   * -Extensión a palabras h : *  * h(L)={h(x) : x  L}  Homomorfismo inverso: h-1(y) = {x  * : h(x) = y} h-1(L) = {x  * : h(x)  L}

3. Gramáticas G = (N, , P, S) N = conjunto de terminales.  = alfabeto. P = conjunto de reglas de producción. S  N, axioma P  V*NV*  V* (, )  P se denota Ejemplo: L = {an b2n: n  1} G = ( {S}, {a, b}, , S )

’, ’  V*, ’ deriva directamente en ’ en G ( ) si: ’ =    ’ =    con  deriva en  en G ( ) si existe  1,  2, ...  n  V* :  1 = ,  n =  y además i = 1..n - 1   V* es una forma sentencial de G si . Si   * ,  es una palabra generada por G. Lenguaje generado por G G equivalente a G ’ si L(G) = L(G ’)

4. Tipos de Gramáticas Regulares (tipo 3): A, B  N. a, b    {} a) Lineales por la derecha: A  aB | b b) Lineales por la izquierda: A  Ba | b Incontextuales (tipo 2): A   con A  N,   V* Contextuales (tipo 1): con A  N; ,   V* ;   V + - Formas sentenciales de longitud no decreciente - a condición de que ... No restringidas (tipo 0) L3  L2  L1  L0 L3 L2 L1 L0

- Dada G = (N, , P, S) existe G’ equivalente a G sin 5. Propiedades de cierre - Dada G = (N, , P, S) existe G’ equivalente a G sin terminales en parte izquierda de reglas de producción. -Si tenemos la regla aA a con A  N, ,   V* a   la sustituimos por las reglas Xa A  Xa  Xa  a que producen el mismo efecto - Todo lenguaje finito es de tipo 3. Ej. El lenguaje L = {aba, ac} se puede generar con la gramática S  aA A  bB | c B  a

Cierre respecto de la Unión de Lenguajes L, L’  Li  L  L’  Li Dadas G = (N, , P, S) con L = L(G) G’ = (N’, ’, P’, S’) con L’ = L(G’) y N  N ’=   Si i  1 Sea G’’ = (N’’, ’’, P’’, S’’) con: N’’ = N  N’  {S’’} ’’ =   ’ P’’ = P  P’  {S’’  S | S’}  Si i = 1 y   L  L’ , Sean L1=L-{} y L2=L’ - {} Construcción anterior para L1  L2 L  L’ = L1  L2  {}. Se añade S’’  

Cierre respecto de la Concatenación de Lenguajes L, L’  Li  L L’  Li Dadas G = (N, , P, S) con L = L(G) G’ = (N’, ’, P’, S’) con L’ = L(G’) tales que N  N ’= , P’ y P sin terminales en parte izda.  Si i = 0, 2 que no sean de tipo 1 y 3, Sea G’’ = (N’’, ’’, P’’, S’’) con: N’’ = N  N’  {S’’}, ’’ =   ’, P’’ = P  P’ {S’’  S S’ }  Si i = 1 y   L o   L’ , Sean L1=L-{} y L2=L’ - {} Construcción anterior para L1L2 L L’ = L1L2  L1  L2  {} si   L y   L’ = L1L2  L1 si   L y   L’ = L1L2  L2 si   L’ y   L  Si i = 3 G’’ = (N’’, ’’, P’’, S) con N’’ = N  N’ , ’’ =   ’, P’’ = P1  P’ con P1 = P salvo las reglas A  a que pasan a ser A  aS’ si a  

Cierre respecto de la Clausura de Kleene L  Li  L *  Li Solo para tipo 3: Dada G = (N, , P, S) con L = L(G) Sea G’ = (N {S0}, , P  P’  P’’, S0 ) con: P’ = {A  a S0 : A  a  P } P’’ = {S0   | S } L(G’) = L* Cierre respecto de la inversión L  Li  Lr  Li Dada G = (N, , P, S) con L = L(G) Sea G’ = (N ,  , P’, S0) con: P’ = { r   r :     P } (Las de tipo 3 l.d. Pasan a ser l.i.) L(G’) = Lr