Está en la página 1de 18

Captulo 1

Alfabetos, cadenas y lenguajes


1.1. Alfabetos y cadenas
Un alfabeto es un conjunto nito no vaco cuyos elementos se llaman smbolos.
Denotamos un alfabeto arbitrario con la letra .
Una cadena o palabra sobre un alfabeto es cualquier sucesion nita de ele-
mentos de . Admitimos la existencia de una unica cadena que no tiene smbolos,
la cual se denomina cadena vaca y se denota con . La cadena vaca desempe na,
en la teora de lenguajes formales, un papel similar al que desempe na el conjunto
vaco en la teora de conjuntos.

Ejemplo
Sea = {a, b} el alfabeto que consta de los dos smbolos a y b. Las
siguientes son cadenas sobre :
aba
ababaaa
aaaab.
Observese que aba = aab. El orden de los smbolos en una cadena es signicativo
ya que las cadenas se denen como sucesiones, es decir, conjuntos secuencialmente
ordenados.

Ejemplo
El alfabeto = {0, 1} se conoce como alfabeto binario. Las cadenas
sobre este alfabeto son secuencias nitas de ceros y unos, llamadas
secuencias binarias, tales como
001
1011
001000001.

Ejemplo
= {a, b, c, . . . , x, y, z}, el alfabeto del idioma castellano. Las pala-
bras ociales del castellano (las que aparecen en el diccionario DRA)
son cadenas sobre .
1
2 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro

Ejemplo
El alfabeto utilizado por muchos de los llamados lenguajes de progra-
macion (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 min usculas,
los smbolos de puntuacion y los smbolos matematicos disponibles en los teclados
estandares.
El conjunto de todas las cadenas sobre un alfabeto , incluyendo la cadena
vaca, se denota por

Ejemplo Sea = {a, b, c}, entonces

= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}.
En la siguiente tabla aparecen las convenciones de notacion corrientemente utili-
zadas en la teora de lenguajes formales. De ser necesario, se emplean subndices.
Notacion 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 nitas de
smbolos de un alfabeto.
denota la cadena vaca, es decir, la unica cadena
que no tiene smbolos.
A, B, C, . . . , L, M, N,. . . denotan lenguajes (denidos mas adelante).
Algunos autores denotan la cadena vaca con la letra griega . Preferimos
denotarla con porque tiende a confundirse con el smbolo usado
para la relacion de pertenencia.
Si bien un alfabeto es un conjunto nito,

es siempre un conjunto
innito (enumerable). En el caso mas simple, contiene solo un smbolo,
= {a}, y

= {, a, aa, aaa, aaaa, aaaaa, . . .}.


Hay que distinguir entre los siguientes cuatro objetos, que son todos di-
ferentes entre s: , , {} y {}.
La mayor parte de la teora de lenguajes se hace con referencia a un
alfabeto jo (pero arbitrario).
Captulo 1 Alfabetos, cadenas y lenguajes 3
1.2. Concatenacion de cadenas
Dado un alfabeto y dos cadenas u, v

, la concatenacion de u y v se
denota como u v o simplemente uv y se dene descriptivamente as:
1. Si v = , entonces u = u = u. Es decir, la concatenacion de cualquier
cadena u con la cadena vaca, a izquierda o a derecha, es igual a u.
2. Si u = a
1
a
2
a
n
, v = b
1
b
2
b
m
, entonces
u v = a
1
a
2
a
n
b
1
b
2
b
m
.
Es decir, u v es la cadena formada escribiendo los smbolos de u y a con-
tinuacion los smbolos de v.
La concatenacion de cadenas se puede denir inductiva o recursivamente de la
siguiente manera. Si u, v

, a , entonces
1. u = u = u.
2. u (va) = (u v)a.
Propiedad. La concatenacion de cadenas es una operacion asociativa. Es decir,
si u, v, w

, entonces
(uv)w = u(vw).
Demostracion: Se puede hacer escribiendo explcitamente las cadenas u, v, w
y usando la denicion descriptiva de concatenacion. Tambien se puede dar una
demostracion inductiva usando la denicion recursiva de concatenacion (ejercicio
opcional).
1.3. Potencias de una cadena
Dada u

y n N, se dene (descriptivamente) u
n
en la siguiente forma
u
0
= ,
u
n
= uu u
. .
n veces
.

Ejercicio Dar una denicion recursiva de u


n
.
4 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
1.4. Longitud de una cadena
La longitud de una cadena u

se denota |u| y se dene como el n umero de


smbolos de u (contando los smbolos repetidos). Es decir,
|u| =
_
0, si u = ,
n, si u = a
1
a
2
a
n

Ejemplo |aba| = 3, |baaa| = 4.

Ejemplo Si w

, n, m N, demostrar que
|w
n+m
| = |w
n
| +|w
m
|
Solucion:
Caso n, m 1. |w
n+m
| = | ww w
. .
n+m veces
| = (n + m)|w|. Por otro lado,
|w
n
| +|w
m
| = | ww w
. .
n veces
| +| ww w
. .
m veces
| = n|w| + m|w|.
Caso n = 0, m 1. |w
n+m
| = |w
0+m
| = |w
m
|. Por otro lado,
|w
n
| +|w
m
| = |w
0
| +|w
m
| = || +|w
m
| = 0 +|w
m
| = |w
m
|.
Caso m = 0, n 1. Similar al caso anterior.
Caso n = 0, m = 0. |w
n+m
| = |w
0+0
| = || = 0. Por otro lado,
|w
n
| +|w
m
| = |w
0
| +|w
0
| = || +|| = 0 + 0 = 0.
1.5. Reexion o inversa de una cadena
La reexion o inversa de una cadena u

se denota u
R
y se dene descrip-
tivamente as:
u
R
=
_
, si u = ,
a
n
a
2
a
1
, si u = a
1
a
2
a
n
.
De la denicion se observa claramente que la reexion de la reexion de una
cadena es la misma cadena, es decir,
(u
R
)
R
= u, para u

Ejercicio Dar una denicion recursiva de u


R
.

Ejercicio
Si u, v

, demostrar que (uv)


R
= v
R
u
R
. Generalizar esta propie-
dad a la concatenacion de n cadenas.
Algunos autores escriben u
1
en lugar de u
R
para denotar la reexion de
una cadena u.
Captulo 1 Alfabetos, cadenas y lenguajes 5
1.6. Subcadenas, prejos y sujos
Una cadena v es una subcadena o una subpalabra de u si existen cadenas x, y
tales que u = xvy. Notese que x o y pueden ser y, por lo tanto, la cadena vaca
es una subcadena de cualquier cadena.
Un prejo de u es una cadena v tal que u = vw para alguna cadena w

.
Se dice que v es un prejo propio si v = u.
Similarmente, un sujo de u es una cadena v tal que u = wv para alguna
cadena w

. Se dice que v es un sujo propio si v = u.


Observese que es un prejo y un sujo de toda cadena u ya que u = u = u.
Por la misma razon, toda cadena u es prejo y sujo de s misma.

Ejemplo Sea = {a, b, c, d}, u = bcbaadb.


Prejos de u :

b
bc
bcb
bcba
bcbaa
bcbaad
bcbaadb
Sujos de u :

b
db
adb
aadb
baadb
cbaadb
bcbaadb
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 .


Todo lenguaje L satisface L

, y puede ser nito o innito. Los lenguajes


se denotan con letras may usculas A, B, C, . . . , L, M, N, . . .. En la siguiente graca
se visualizan dos lenguajes A y B sobre .
6 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro

Ejemplo
Los siguientes son ejemplos de lenguajes sobre los alfabetos especi-
cados.
= {a, b, c}. L = {a, aba, aca}.
= {a, b, c}. L = {a, aa, aaa, . . .} = {a
n
: n 1}.
= {a, b, c}. L = {, aa, aba, ab
2
a, ab
3
a, . . .} = {ab
n
a : n 0} {}.
= {a, b, c, . . . , x, y, z}. L = {u

: u aparece en el diccionario espa nol DRA}.


L es un lenguaje nito.
= {a, b, c}. L = {u

: u no contiene el smbolo c}. Por ejemplo,


abbaab L pero abbcaa / L.
= {0, 1}. L = conjunto de todas las secuencias binarias que contienen un
n umero impar de unos.
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. El conjunto N de los n umeros naturales se
puede denir como un lenguaje sobre , en la siguiente forma:
N = {u

: u = 0 o 0 no es un prejo de u}.

Ejercicio
Denir 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
El concepto abstracto de lenguaje, tal como se ha denido, no es exac-
tamente la misma nocion utilizada en la expresion lenguaje de progra-
macion. Para precisar la relacion entre estos conceptos, consideremos el
alfabeto de los caracteres ASCII. Un programa en C o en Pascal, por
ejemplo, es simplemente una cadena de smbolos de y, por lo tanto, un
conjunto de programas es un lenguaje (en el sentido formal denido en
esta seccion).
1.8. Operaciones entre lenguajes
Puesto que los lenguajes sobre son subconjuntos de

, las operaciones usuales


entre conjuntos son tambien operaciones validas entre lenguajes. As, si A y B
son lenguajes sobre (es decir A, B

), entonces los siguientes tambien son


lenguajes sobre :
A B Union
A B Interseccion
A B Diferencia
A =

A Complemento
Estas operaciones entre lenguajes se llaman operaciones conjuntistas o boolea-
nas para distinguirlas de las operaciones ling usticas (concatenacion, potencia,
inverso, clausura) que son extensiones a los lenguajes de las operaciones entre
cadenas.
1.9. Concatenacion de lenguajes
La concatenacion de dos lenguajes A y B sobre , notada A B o simplemente
AB se dene como
AB = {uv : u A, v B}.
En general AB = BA.

Ejemplo Si = {a, b, c}, A = {a, ab, ac}, B = {b, b


2
}, entonces
AB = {ab, ab
2
, ab
2
, ab
3
, acb, acb
2
}.
BA = {ba, bab, bac, b
2
a, b
2
ab, b
2
ac}.

Ejemplo Si = {a, b, c}, A = {ba, bc}, B = {b


n
: n 0}, entonces
AB = {bab
n
: n 0} {bcb
n
: n 0}.
BA = {b
n
ba : n 0} {b
n
bc : n 0}
= {b
n+1
a : n 0} {b
n+1
c : n 0}
= {b
n
a : n 1} {b
n
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.
Propiedades de la concatenacion de lenguajes. Sean A, B, C lenguajes sobre
, es decir A, B, C

. Entonces
1. A = A = .
2. A {} = {} A = A.
3. Propiedad Asociativa.
A (B C) = (A B) C.
4. Distributividad de la concatenacion con respecto a la union.
A (B C) = A B A C.
(B C) A = B A C A.
5. Propiedad distributiva generalizada. Si {B
i
}
iI
es una familia cualquiera de
lenguajes sobre , entonces
A

iI
B
i
=

iI
(A B
i
),
_

iI
B
i
_
A =

iI
(B
i
A).
Demostracion:
1. A = {uv : u A, v } = .
2. A {} = {uv : u A, v {}} = {u : u A} = A.
3. Se sigue de la asociatividad de la concatenacion de cadenas.
4. Caso particular de la propiedad general, demostrada a continuacion.
5. Demostracion de la igualdad A

iI
B
i
=

iI
(A B
i
):
x A

iI
B
i
x = u v, con u A & v

iI
B
i
x = u v, con u A & v B
j
, para alg un j I
x A B
j
, para alg un j I
x

iI
(A B
i
).
La igualdad
_

iI
B
i
_
A =

iI
(B
i
A) se demuestra de forma similar.
Captulo 1 Alfabetos, cadenas y lenguajes 9
La propiedad asociativa permite escribir concatenaciones de tres o mas
lenguajes sin necesidad de usar parentesis.
En general, no se cumple que A(BC) = ABAC. Es decir, la conca-
tenacion no es distributiva con respecto a la interseccion. Contraejemplo:
A = {a, }, B = {}, C = {a}. Se tiene:
A (B C) = {a, } = .
Por otro lado,
A B A C = {a, } {} {a, } {a} = {a, } {a
2
, a} = {a}.

Ejercicio
Una de las dos contenencias siguientes es verdadera y la otra es
falsa. Demostrar o refutar, seg un sea el caso:
1. A (B C) A B A C.
2. A B A C A (B C).
1.10. Potencias de un lenguaje
Dado un lenguaje A sobre , (A

), y n N, se dene A
n
en la siguiente
forma
A
0
= {},
A
n
= AA A
. .
n veces
.
Esta denicion generaliza a lenguajes la denicion de potenciacion de cadenas.

Ejercicio Dar una denicion recursiva de A


n
.
1.11. La clausura de Kleene de un lenguaje
La clausura de Kleene o estrella de Kleene o simplemente la estrella de un
lenguaje A, A

, es la union de todas las potencias de A y se denota por A

.
(Descripcion 1) A

=
_
i0
A
i
= A
0
A
1
A
2
A
n

A

se puede describir de la siguiente manera


(Descripcion 2)
A

= conjunto de todas las concatenaciones


de cadenas de A, incluyendo
= {u
1
u
n
: u
i
A, n 0}
10 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
De manera similar se dene la clausura positiva de un lenguaje A, A

, la
cual se denota por A
+
.
A
+
=
_
i1
A
i
= A
1
A
2
A
n

A
+
se puede describir de la siguiente manera
A
+
= conjunto de todas las concatenaciones de cadenas de A,
= {u
1
u
n
: u
i
A, n 1}
Observese que A

= A
+
{} y que A

= A
+
si y solamente si A.
Propiedades de y +. Sea A un lenguaje sobre , es decir, A

.
1. A
+
= A

A = A A

.
2. A

= A

.
3.
_
A

_
n
= A

, para todo n 1.
4.
_
A

= A

.
5. A
+
A
+
A
+
.
6.
_
A

_
+
= A

.
7.
_
A
+
_

= A

.
8.
_
A
+
_
+
= A
+
.
Demostracion:
A A

= A (A
0
A
1
A
2
) 1.
= A
1
A
2
A
3

= A
+
.
Similarmente se demuestra que A

A = A
+
.
2. Si x A

, entonces x = u v, con u A

, v A

. Entonces, x = u v,
con u = u
1
u
2
u
n
, u
i
A, n 0 y v = v
1
v
2
v
m
, v
i
A, m 0.
De donde
x = u v = u
1
u
2
u
n
v
1
v
2
v
m
.
con u
i
A, v
i
A, n 0. Por lo tanto, x es una concatenacion de n + m
cadenas de A. As que x A

.
Captulo 1 Alfabetos, cadenas y lenguajes 11
Recprocamente, si x A

, entonces x = x A

. Esto prueba la
igualdad de los conjuntos A

y A

.
3. Se sigue de la propiedad anterior.
_
A

=
_
A

_
0

_
A

_
1

_
A

_
2
4.
= {} A


= A

.
5. La demostracion de esta propiedad es similar a la de la propiedad 2, pero con
la restriccion m, n 1. En general, no se tiene la igualdad A
+
A
+
= A
+
; mas
adelante se mostrara un contraejemplo.
_
A

_
+
=
_
A

_
1
(A

_
2
(A

_
3
6.
= A


= A

.
_
A
+
_

=
_
A
+
_
0

_
A
+
_
1

_
A
+
_
2
7.
= {} A
+
A
+
A
+

= A

(conjuntos contenidos en A
+
)
= A

.
_
A
+
_
+
=
_
A
+
_
1

_
A
+
_
2

_
A
+
_
3
, 8.
= A
+
(conjuntos contenidos en A
+
)
= A
+
.
Contraejemplo de A
+
A
+
= A
+
. Sea = {a, b}, A = {a}. Se tiene
A
+
= A
1
A
2
= {a} {aa} {aaa} = {a
n
: n 1}.
Por otro lado,
A
+
A
+
= {a, a
2
, a
3
, . . . } {a, a
2
, a
3
, . . . } = {a
2
, a
3
, a
4
, . . . }
= {a
n
: n 2}.
Seg un las deniciones dadas,

tiene dos signicados:

= conjunto de las cadenas sobre el alfabeto .

= conjunto de todas las concatenaciones de cadenas de .


No hay conicto de notaciones porque las dos deniciones anteriores de

dan lugar al mismo conjunto.


12 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro

Ejercicio Sean A, B

. Demostrar que
(A B)

= (A

.
Ayuda: tener en cuenta tanto la descripcion 1 como la descripcion 2 presen-
tadas arriba.
1.12. Reexion o inverso de un lenguaje
Dado A un lenguaje sobre , se dene A
R
de la siguiente forma:
A
R
= {u
R
: u A}.
A
R
se denomina la reexion o el inverso de A.
Propiedades. Sean A y B lenguajes sobre (es decir, A, B

).
1. (A B)
R
= B
R
A
R
.
2. (A B)
R
= A
R
B
R
.
3. (A B)
R
= A
R
B
R
.
4.
_
A
R
_
R
= A.
5. (A

)
R
=
_
A
R
_

.
6. (A
+
)
R
=
_
A
R
_
+
.
Demostracion:
x (A B)
R
x = u
R
, donde u A B 1.
x = u
R
, donde u = vw, v A, w B
x = (vw)
R
, donde v A, w B
x = w
R
v
R
, donde v A, w B
x B
R
A
R
.
2.

Ejercicio
3.

Ejercicio
Captulo 1 Alfabetos, cadenas y lenguajes 13
4.

Ejercicio
x (A

)
R
x = u
R
, donde u A

5.
x = (u
1
u
2
u
n
)
R
, donde los u
i
A, n 0
x = u
R
n
u
R
2
u
R
1
, donde los u
i
A, n 0
x (A
R
)

.
6.

Ejercicio

Ejercicio
Se pueden generalizar las propiedades 2 y 3 anteriores para uniones
e intersecciones arbitrarias, respectivamente?
1.13. Lenguajes regulares
Los lenguajes regulares sobre un alfabeto dado son todos los lenguajes que
se pueden formar a partir de los lenguajes basicos , {}, {a}, a , por medio
de las operaciones de union, concatenacion y estrella de Kleene.
Podemos dar una denicion recursiva de los lenguajes regulares. Sea un
alfabeto.
1. , {} y {a}, para cada a , son lenguajes regulares sobre . Estos son
los denominados lenguajes regulares basicos.
2. Si A y B son lenguajes regulares sobre , tambien lo son
A B (union)
A B (concatenacion)
A

(estrella de Kleene).
Observese que tanto como

son lenguajes regulares sobre .

Ejemplos Sea = {a, b}. Los siguientes son lenguajes regulares sobre :
1. El lenguaje A de todas las cadenas que tienen exactamente una a:
A = {b}

{a} {b}

.
2. El lenguaje B de todas las cadenas que comienzan con b:
B = {b} {a, b}

.
14 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
3. El lenguaje C de todas las cadenas que contienen la cadena ba:
C = {a, b}

{ba} {a, b}

.
4. ({a} {b}

) {a}.
5.
__
{a}

{b}

_
{b}

.
Es importante observar que todo lenguaje nito L = {w
1
, w
2
, . . . , w
n
} es regular
ya que L es puede obtener con uniones y concatenaciones:
L = {w
1
} {w
2
} {w
n
},
y cada w
i
es la concatenacion de un n umero nito de smbolos, w
i
= a
1
a
2
a
k
;
por lo tanto, {w
i
} = {a
1
} {a
2
} {a
k
}.
1.14. Expresiones regulares
Las expresiones regulares representan lenguajes regulares y su proposito es sim-
plicar la escritura de los lenguajes regulares.
La siguiente es la denicion recursiva de las expresiones regulares sobre un
alfabeto dado.
1. Expresiones regulares basicas:
es una expresion regular que representa al lenguaje .
es una expresion regular que representa al lenguaje {}.
a es una expresion regular que representa al lenguaje {a}, a .
2. Si R y S son expresiones regulares sobre , tambien lo son:
(R)(S)
(R S)
(R)

(R)(S) representa la concatenacion de los lenguajes representados por R y


S; (R S) representa su union, y (R)

representa la clausura de Kleene del


lenguaje representado por R. Los parentesis ( y ) son smbolos de agrupacion
y se pueden omitir si no hay peligro de ambig uedad.
Captulo 1 Alfabetos, cadenas y lenguajes 15
Para una expresion regular R cualquiera se utiliza en ocasiones la siguiente no-
tacion:
L(R) := lenguaje representado por R.
Utilizando esta notacion y la denicion de expresion regular podemos escribir,
para R y S expresiones regulares arbitrarias:
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)

es una expresion regular que representa al lenguaje


({a} {b}

) {a}

{bc}

Ejemplo Dado el alfabeto = {a, b},


( a)

(a b)

(ba)

es una expresion regular que representa al lenguaje


({} {a})

({a} {b})

{ba}

Ejemplos
Los tres primeros lenguajes de la seccion 1.13, podemos represen-
tarlos con expresiones regulares:
1. El lenguaje A de todas las cadenas que tienen exactamente una a:
A = b

ab

.
2. El lenguaje B de todas las cadenas que comienzan con b:
B = b(a b)

.
3. El lenguaje C de todas las cadenas que contienen la cadena ba:
C = (a b)

ba(a b)

.
16 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
La representacion de lenguajes regulares por medio de expresiones regula-
res no es unica. Es posible que haya varias expresiones regulares diferentes
para el mismo lenguaje. Por ejemplo, b(a b)

y b(b a)

representan el
mismo lenguaje.
Otro ejemplo: las dos expresiones regulares (a b)

y (a

representan
el mismo lenguaje por la igualdad establecida en el ejercicio nal de la
seccion 1.11

Ejemplos
Encontrar expresiones regulares que representen los siguientes len-
guajes, denidos sobre el alfabeto = {a, b}:
1. Lenguaje de todas las cadenas que comienzan con b y terminan con a.
Solucion: b(a b)

a.
2. Lenguaje de todas las cadenas que tienen un n umero par de smbolos (ca-
denas de longitud par).
Solucion: (aa ab ba bb)

.
3. Lenguaje de todas las cadenas que tienen un n umero par de aes.
Soluciones:
b

(b

ab

ab

.
(ab

a b)

.
(b

ab

ab

Ejemplos
Encontrar expresiones regulares que representen los siguientes len-
guajes, denidos sobre el alfabeto = {0, 1}.
1. Lenguaje de todas las cadenas que tienen exactamente dos ceros.
Solucion: 1

01

01

.
2. Lenguaje de todas las cadenas cuyo pen ultimo smbolo, de izquierda a de-
recha, es un 0.
Solucion: (0 1)

0(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.
Solucion: Una b puede estar seguida solamente de otra b o de una a, mientras
que las aes y las ces pueden estar seguidas de cualquier smbolo. Esto se puede
visualizar por medio del siguiente diagrama:
Captulo 1 Alfabetos, cadenas y lenguajes 17
Teniendo en cuenta todas las restricciones y posibilidades, arribamos a la siguiente
expresion: (a c b
+
a)

. Una expresion regular mas sencilla para este lenguaje


es c

(b ac

Ejercicios
Encontrar expresiones regulares para los lenguajes descritos a con-
tinuacion:
1. = {0, 1, 2}. Lenguaje de todas las cadenas que comienzan con 2 y termi-
nan con 1.
2. = {a, b, c}. Lenguaje de todas las cadenas que tienen un n umero par de
smbolos.
3. = {a, b}. Lenguaje de todas las cadenas que tienen un n umero impar de
smbolos.
4. = {a, b, c}. Lenguaje de todas las cadenas que tienen un n umero impar
de smbolos.
5. = {a, b}. Lenguaje de todas las cadenas que tienen un n umero impar de
aes.
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.
9. = {0, 1}. Lenguaje de todas las cadenas de longitud par 2 formadas
por ceros y unos alternados.
10. = {0, 1}. Lenguaje de todas las cadenas cuya longitud es 4.
18 Teora de la Computacion 2003-II Profesor: Rodrigo De Castro
11. = {0, 1}. Lenguaje de todas las cadenas de longitud impar que tienen
unos unicamente en las posiciones impares.
12. = {a, b}. Lenguaje de todas las cadenas que tienen la cadena ab un
n umero par de veces.
13. = {a, b}. Lenguaje de todas las cadenas que tienen un n umero par de aes
o un n umero impar de bes.
14. = {0, 1}. Lenguaje de todas las cadenas cuya longitud es un m ultiplo de
tres.
15. = {0, 1, 2}. Lenguaje de todas las cadenas que no contienen dos unos
consecutivos.
No todos los lenguajes sobre un alfabeto dado son regulares. Mas
adelante se mostrara que el lenguaje
L = {, ab, aabb, aaabbb, . . . } = {a
n
b
n
: n 0}
sobre = {a, b} no se puede representar por medio de una expresion
regular, y por lo tanto, no es un lenguaje regular.

También podría gustarte