Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap1 Alfabetos Cadenas y Lenguajes PDF
Cap1 Alfabetos Cadenas y Lenguajes PDF
1
2 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
Ejemplo El alfabeto utilizado por muchos de los llamados lenguajes de progra-
maci on (como Pascal o C) es el conjunto de caracteres ASCII (o un
subconjunto de el) que incluye, por lo general, las letras may
usculas y minusculas,
los smbolos de puntuacion y los smbolos matematicos disponibles en los teclados
estandares.
= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}.
Notaci
on usada en la teora de lenguajes
, denotan alfabetos.
denota el conjunto de todas las cadenas que se pue-
den formar con los smbolos del alfabeto .
a, b, c, d, e,. . . denotan smbolos de un alfabeto.
u, v, w, x, y, z, . . . denotan cadenas, es decir, sucesiones finitas de
, , , . . . smbolos de un alfabeto.
denota la cadena vaca, es decir, la u
nica cadena
que no tiene smbolos.
A, B, C, . . . , L, M, N ,. . . denotan lenguajes (definidos mas adelante).
1.2. Concatenaci
on de cadenas
Dado un alfabeto y dos cadenas u, v , la concatenaci on de u y v se
denota como u v o simplemente uv y se define descriptivamente as:
2. Si u = a1 a2 an , v = b1 b2 bm , entonces
u v = a1 a2 an b 1 b 2 b m .
1. u = u = u.
2. u (va) = (u v)a.
u0 = ,
un = uu u} .
| {z
n veces
Ejercicio Dar una definicion recursiva de un .
4 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
1.5. Reflexi
on o inversa de una cadena
on o inversa de una cadena u se denota uR y se define descrip-
La reflexi
tivamente as:
R , si u = ,
u =
an a2 a1 , si u = a1 a2 an .
De la definicion se observa claramente que la reflexion de la reflexion de una
cadena es la misma cadena, es decir,
(uR )R = u, para u .
Ejercicio Dar una definicion recursiva de uR .
R R R
Ejercicio Si u, v , demostrar que (uv) = v u . Generalizar esta propie-
dad a la concatenacion de n cadenas.
1.7. Lenguajes
Un lenguaje L sobre un alfabeto es un subconjunto de , es decir L .
Casos extremos:
L = , lenguaje vaco.
L = , lenguaje de todas las cadenas sobre .
Ejemplo Los siguientes son ejemplos de lenguajes sobre los alfabetos especifi-
cados.
N = {u : u = 0 o 0 no es un prefijo de u}.
Ejercicio Definir el conjunto de los enteros Z = {. . . , 2, 1, 0, 1, 2, . . .} como
un lenguaje sobre un alfabeto adecuado.
Captulo 1 Alfabetos, cadenas y lenguajes 7
1.9. Concatenaci
on de lenguajes
La concatenacion de dos lenguajes A y B sobre , notada A B o simplemente
AB se define como
AB = {uv : u A, v B}.
En general AB 6= BA.
Ejemplo Si = {a, b, c}, A = {a, ab, ac}, B = {b, b2 }, entonces
AB = {ab, ab2 , ab2 , ab3 , acb, acb2 }.
BA = {ba, bab, bac, b2 a, b2 ab, b2 ac}.
Ejemplo Si = {a, b, c}, A = {ba, bc}, B = {bn : n 0}, entonces
AB = {babn : n 0} {bcbn : n 0}.
BA = {bn ba : n 0} {bn bc : n 0}
= {bn+1 a : n 0} {bn+1 c : n 0}
= {bn a : n 1} {bn c : n 1}.
8 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
Ejercicio De un ejemplo de un alfabeto y dos lenguajes diferentes A, B
sobre tales que AB = BA.
2. A {} = {} A = A.
3. Propiedad Asociativa.
A (B C) = (A B) C.
A (B C) = A B A C.
(B C) A = B A C A.
Demostracion:
1. A = {uv : u A, v } = .
2. A {} = {uv : u A, v {}} = {u : u A} = A.
A (B C) = {a, } = .
1. A+ = A A = A A .
2. A A = A .
n
3. A = A , para todo n 1.
4. A = A .
5. A+ A+ A+ .
+
6. A = A .
7. A+ = A .
+
8. A+ = A+ .
Demostracion:
1. A A = A (A0 A1 A2 )
= A1 A2 A3
= A+ .
0 1 2
7. A+ = A+ A + A+
= {} A+ A+ A+
= A (conjuntos contenidos en A+ )
= A .
+ 1 2 3
8. A+ = A+ A + A+ ,
= A+ (conjuntos contenidos en A+ )
= A+ .
Ejercicio Sean A, B . Demostrar que
(A B) = (A B ) .
1.12. Reflexi
on o inverso de un lenguaje
Dado A un lenguaje sobre , se define AR de la siguiente forma:
AR = {uR : u A}.
AR se denomina la reflexi
on o el inverso de A.
1. (A B)R = B R AR .
2. (A B)R = AR B R .
3. (A B)R = AR B R .
R
4. AR = A.
5. (A )R = AR .
R +
6. (A+ ) = AR .
Demostracion:
1. x (A B)R x = uR , donde u A B
R
x = u , donde u = vw, v A, w B
x = (vw)R , donde v A, w B
R R
x = w v , donde v A, w B
R R
x B A .
2. Ejercicio
3. Ejercicio
Captulo 1 Alfabetos, cadenas y lenguajes 13
4. Ejercicio
5. x (A )R x = uR , donde u A
x = (u1 u2 un )R , donde los ui A, n 0
x = uR R R
n u2 u1 , donde los ui A, n 0
x (AR ) .
6. Ejercicio
Ejercicio Se pueden generalizar las propiedades 2 y 3 anteriores para uniones
e intersecciones arbitrarias, respectivamente?
AB (union)
AB (concatenacion)
A (estrella de Kleene).
B = {b} {a, b} .
14 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
(R)(S)
(R S)
(R)
L() = .
L() = {}.
L(a) = {a}, a .
L(RS) = L(R)L(S).
L(R S) = L(R) L(S).
L(R ) = L(R) .
Ejemplo Dado el alfabeto = {a, b, c},
(a b )a (bc)
( a) (a b) (ba)
A = b ab .
B = b(a b) .
C = (a b) ba(a b) .
16 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
Ejemplos Encontrar expresiones regulares que representen los siguientes len-
guajes, definidos sobre el alfabeto = {0, 1}.
Ejemplo Sea = {a, b, c}. Encontrar una expresion regular que represente el
lenguaje de todas las cadenas que no contienen la cadena bc.
1. = {0, 1, 2}. Lenguaje de todas las cadenas que comienzan con 2 y termi-
nan con 1.
6. = {0, 1}. Lenguaje de todas las cadenas que tienen por lo menos un 0 y
por lo menos un 1.
7. = {0, 1}. Lenguaje de todas las cadenas que tienen a lo sumo dos ceros
consecutivos.
8. = {0, 1}. Lenguaje de todas las cadenas cuyo quinto smbolo, de izquierda
a derecha, es un 1.
11. = {0, 1}. Lenguaje de todas las cadenas de longitud impar que tienen
unos u
nicamente en las posiciones impares.
12. = {a, b}. Lenguaje de todas las cadenas que tienen la cadena ab un
n
umero par de veces.
15. = {0, 1, 2}. Lenguaje de todas las cadenas que no contienen dos unos
consecutivos.