Documentos de Académico
Documentos de Profesional
Documentos de Cultura
24 de agosto de 2015
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
1 / 26
Lenguajes y Gramaticas
Lenguajes formales
Operaciones con lenguajes
Metodos formales
Equivalencias
Metalenguaje
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
2 / 26
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
3 / 26
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
3 / 26
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
3 / 26
Lenguajes y Gramaticas
Lenguajes formales
Operaciones con lenguajes
Metodos formales
Equivalencias
Metalenguaje
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
4 / 26
Sistemas formales
Son sistemas para manipular formas sin importar su significado, es decir la
sintaxis. El primer sistema formal se encuentra en los trabajos de Euclides
(300 AC) cuyos trabajos organizaban y sistematizaban todo el conocimiento
de la epoca con relaci
on a la geometra. La presentacion se hizo mediante
axiomas, definiciones, postulados y teoremas.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
5 / 26
Sistemas formales
Son sistemas para manipular formas sin importar su significado, es decir la
sintaxis. El primer sistema formal se encuentra en los trabajos de Euclides
(300 AC) cuyos trabajos organizaban y sistematizaban todo el conocimiento
de la epoca con relaci
on a la geometra. La presentacion se hizo mediante
axiomas, definiciones, postulados y teoremas.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
5 / 26
Sistemas formales
Son sistemas para manipular formas sin importar su significado, es decir la
sintaxis. El primer sistema formal se encuentra en los trabajos de Euclides
(300 AC) cuyos trabajos organizaban y sistematizaban todo el conocimiento
de la epoca con relaci
on a la geometra. La presentacion se hizo mediante
axiomas, definiciones, postulados y teoremas.
24 de agosto de 2015
5 / 26
Metodos formales
Son tecnicas con fundamentos matematicos que son usados para describir y
analizar las propiedades de los sistemas.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
6 / 26
Metodos formales
Son tecnicas con fundamentos matematicos que son usados para describir y
analizar las propiedades de los sistemas.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
6 / 26
Metodos formales
Son tecnicas con fundamentos matematicos que son usados para describir y
analizar las propiedades de los sistemas.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
6 / 26
Lenguajes y Gramaticas
Lenguajes formales
Operaciones con lenguajes
Metodos formales
Equivalencias
Metalenguaje
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
7 / 26
Lenguaje
Un lenguaje es una forma de comunicaci
on basada en un conjunto de smbolos y
un conjunto de metodos (reglas) que enlazan tales smbolos. Los lenguajes pueden
ser:
(a) Lenguaje natural.
(b) Lenguajes de programaci
on.
(c) Protocolos de comunicaci
on.
El estudio de los lenguajes formales, bajo la forma de gramaticas, es la base de la
teora de la interpretaci
on y compilaci
on.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
8 / 26
Ejemplos:
Java.
C.
Pyton.
Prolog.
HTML.
etc..
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
9 / 26
Ejemplos:
Java.
C.
Pyton.
Prolog.
HTML.
etc..
En este curso se estudiara la definici
on general de lenguaje formal, sin
considerar a la semantica.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
9 / 26
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
10 / 26
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
10 / 26
Ejemplos:
Sea = {0, 1} un alfabeto, donde = {, 0, 1, 00, 01, 10, 000, . . .} es un
conjunto de palabras. Algunos los lenguajes son:
(1) L = es un lenguaje que no contiene palabras.
(2) L = {} contiene una u
nica palabra, es decir, la palabra vacia.
(3) L = {0} contiene una u
nica palabra, es decir, la palabra 0.
(4) L = {w /2 |w | 20}.
(5) L = {02n 1n /n N}.
(6) L = {02n 1n 02n /n N}.
(7) L = {01} {10}.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
11 / 26
w = a...b
w = abbb
w = abbbbbbbbbb
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
12 / 26
Intersecci
on
Si L1 y L2 son lenguajes definidos sobre los alfabetos 1 y 2 , entonces
L1 L2 es un lenguaje definido sobre 1 2 .
Ejemplo:
Sean los lenguajes L1 = {an /n [1, 20]}, L2 = {am /m [5, 10]}. Entonces la
intersecci
on de estos lenguajes esta dado por:
L1 L2 = {an /n [1, 20]} {am /m [5, 10]} = L2
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
13 / 26
Diferencia
Si L1 y L2 son lenguajes definidos sobre los alfabetos 1 y 2 , entonces
L1 L2 es un lenguaje definido sobre 1 .
Ejemplo:
Sean los lenguajes L1 = {an /n [1, 20]}, L2 = {b m /m [5, 10]}. Entonces la
diferencia de estos lenguajes esta dado por:
L1 L2 = {an /n [1, 20]} {b m /m [5, 10]} = L1
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
14 / 26
Concatenaci
on
Si L1 y L2 son lenguajes definidos sobre los alfabetos 1 y 2 , entonces
L1 L2 = {uv /u L1 v L2 }
es un lenguaje.
Ejemplos:
Sean los lenguajes
L1 = {u {0, 1} |u| = 10}
y
L2 = {0v /v {0, 1} }.
Entonces
(1) L1 L1 = {w {0, 1} / |w | = 20}
(2) L1 L2 es un lenguaje tal que el smbolo en la posici
on once es 0.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
15 / 26
Definicion:
Sea L un lenguaje, entonces Ln , n N, se define recursivamente por:
(a) L0 = {}
(b) Ln = Ln1 L, n 1
Definicion:
Sea L un lenguaje, entonces la cerradura de Kleene L se define recursivamente
por:
(a) L .
(b) Si u L y v L, entonces uv L
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
16 / 26
L+ =
nN{0}
Ln
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
17 / 26
Ejemplos:
(1) = {}
+ =
(2) = {}+ = {}
(3) {0} = {0n /n N}
{0}+ = {0n /n 1}
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
18 / 26
Complemento
Sea L un lenguaje definida sobre el alfabeto . El complemento de L se define por
L = L
Ejemplo:
Sea L = {an b n /n 1} definido por = {a, b}. El complemento de L esta dado
por:
L = L = {a, b} L
Algunas palabras son:
w = aaa
w = bbb
w = bbbaa
w = ababab
w = aabb
/L
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
19 / 26
Observaci
on
(1) El conjunto contiene todos los posibles lenguajes que se pueden definir
sobre el alfabeto .
(2) Los lenguajes de interes son definidas como un subconjunto propio de .
Figura: Lenguaje L.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
20 / 26
Ejemplo:
Sea = {n, (, ), +, , , /} un alfabeto. Un lenguaje L es aquel en el que las
palabras son semejantes del punto de vista estructural, con las palabras que
representan expresiones aritmeticas de los lenguajes de programacion de alto nivel,
es decir:
n
), . . .}
L = {n, n + n, (n n), n ( n+n+n
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
21 / 26
Observaci
on
Los lenguajes de interes, lenguajes de programaci
on, normalmente
corresponden a un subconjunto propio de cerradura reflexiva y transitiva del
alfabeto sobre el cual se construyen las palabras. Por ello es necesario
metodos y notaciones que permitan identificar las palabras que pertenecen al
lenguaje.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
22 / 26
Observaci
on
Los lenguajes de interes, lenguajes de programaci
on, normalmente
corresponden a un subconjunto propio de cerradura reflexiva y transitiva del
alfabeto sobre el cual se construyen las palabras. Por ello es necesario
metodos y notaciones que permitan identificar las palabras que pertenecen al
lenguaje.
Otro aspecto es que los lenguajes de interes tienen una cantidad finita de
palabras.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
22 / 26
Observaci
on
Los lenguajes de interes, lenguajes de programaci
on, normalmente
corresponden a un subconjunto propio de cerradura reflexiva y transitiva del
alfabeto sobre el cual se construyen las palabras. Por ello es necesario
metodos y notaciones que permitan identificar las palabras que pertenecen al
lenguaje.
Otro aspecto es que los lenguajes de interes tienen una cantidad finita de
palabras.
Por estos dos motivos, existe mucho interes por metodos que permitan
especificar los lenguajes mediante representaciones finitas, es decir, metodos
formales.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
22 / 26
Metodos formales
Gram
atica: Es un formalismo usado para definir lenguajes mediante la
generacion de las palabras. Esta forma de especificacion es aplicable para los
lenguajes finitos e infinitos.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
23 / 26
Metodos formales
Gram
atica: Es un formalismo usado para definir lenguajes mediante la
generacion de las palabras. Esta forma de especificacion es aplicable para los
lenguajes finitos e infinitos.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
23 / 26
Metodos formales
Gram
atica: Es un formalismo usado para definir lenguajes mediante la
generacion de las palabras. Esta forma de especificacion es aplicable para los
lenguajes finitos e infinitos.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
23 / 26
Equivalencias
Una gramatica es equivalente a un reconocedor, si se cumple:
(a) Toda palabra generada por la gramatica tambien es aceptada por el
generador.
(b) Toda palabra aceptada por el reconocedor tambien es generada por la
gramatica.
Ejemplo:
Sean la gramatica G y reconocedor M dada por los lenguajes definidos por
= {a, b}:
G: L1 (G ) donde el primer smbolo de la palabra w es a.
M: L2 (M) donde el primer smbolo de la palabra w es a y el u
ltimo b.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
24 / 26
Por lo tanto:
L1 (G ) = {a, aa, ab, aaa, aab, aba, abb, . . .}
L2 (M) = {ab, aab, abb, aaab, aabb, abab, abbb, . . .}
Notamos que la condici
on (b) se verifica, pero (a) no. Es decir ab L2 y ab L1 .
Por otro lado, aba L1 , sin embargo aba
/ L2 . Luego L1 L2 , es decir no son
equivalentes.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
25 / 26
Metalenguaje
Las gramaticas y los reconocedores son dos formas duales para representar a
los lenguajes, es decir, para cada gramatica es posible obtener un
reconocedor que acepte el lenguaje y viceversa.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
26 / 26
Metalenguaje
Las gramaticas y los reconocedores son dos formas duales para representar a
los lenguajes, es decir, para cada gramatica es posible obtener un
reconocedor que acepte el lenguaje y viceversa.
Jos
e A. Rodrguez Melquiades
24 de agosto de 2015
26 / 26