Está en la página 1de 21

Los lenguajes regulares sobre un alfabeto dado son todos los lenguajes que se pueden formar a partir de los

s lenguajes bsicos , {}, {a}, a , por medio de las operaciones de unin, concatenacin y estrella de Kleene.

Se pueden dar definiciones equivalentes, utilizando expresiones regulares o gramticas regulares, ya que estos formalismos definen la misma clase de lenguajes:

Podemos dar una definicin recursiva de los lenguajes regulares. Sea un alfabeto.

1.

, {} y {a}, para cada a , son lenguajes regulares sobre . Estos son los denominados lenguajes regulares bsicos.

2. Si A y B son lenguajes regulares sobre , tambin lo son A B (unin) AB (concatenacin) A (estrella de Kleene)

LENGUAJES REGULARES Un lenguaje Regular es aquel que puede ser representado por un autmata finito no determinista o un autmata finito determinista. Sea un alfabeto. El conjunto de los lenguajes regulares sobre se define recursivamente como sigue:

-El lenguaje vaco 0 es un lenguaje regular El lenguaje cadena vaca {} es un lenguaje regular Para todo smbolo a {a} es un lenguaje regular Si A y B son lenguajes regulares entonces AB (unin), AB (concatenacin) y A* (clausura o estrella de Kleene) son lenguajes regulares. Si A es un lenguaje regular entonces (A) es el mismo lenguaje regular No existen ms lenguajes regulares sobre

Obsrvese que y son lenguajes regulares sobre .

Sea = {a, b}. Los siguientes son lenguajes regulares sobre .

Ejemplos

1. El lenguaje A de todas las palabras que tienen exactamente una a: A = {b} {a} {b}.

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

3. El lenguaje C de todas las palabras que contienen la cadena ba: C = {a, b} {ba} {a, b}.

- No todos los lenguajes son regulares. - Los autmatas finitos slo tienen una capacidad limitada en el proceso de identificacin de palabras: tienen un nmero limitado de estados la nica informacin de la que disponen est en la estructura de este nmero finito de estados

Ejemplo: El lenguaje L={anbn|n>=0} no es regular.

Ilustracin intuitiva de este hecho: Se requera un autmata reconocedor con infinitos estados para aceptar este lenguaje, por lo que no puede ser regular. Construir de manera incremental los AFD para los siguientes lenguajes: L0={l} L1={l,ab} L2={l,ab,aabb} L3={l,ab,aabb,aaabbb}

Se puede observar que el nmero de estados de los autmatas aumenta para cada uno de estos lenguajes. No es posible encontrar autmatas finitos deterministas, tales que el nmero de estados no aumente de un lenguaje Li al siguiente Li+1. Eso indica que el autmata que reconoce el lenguaje L requiere un nmero infinito de estados.

LENGUAJES REGULARES

Lenguajes sobre alfabetos

Para un alfabeto S = {a1,a2,,an} se pueden numerar las palabras de S* de la siguiente manera:


e a1 a2 . an a1a1 a1a2 0 1 2 . n n+1 n+2

para S = {a, b}, podemos numerar sus cadenas con dgitos binarios 1 y 2 en vez de 0 y 1. Sea a el 1 y b el 2, entonces se obtiene e a b 11 12 = 19 0 1 2 = =

abaa

aa ab 1211

3 4

de esta manera se representa cada cadena como un entero nico.

Y cualquier nmero podemos representarlo como una secuencia de as y bs, por ejemplo el 32 se convierte a 11112 y luego a aaaab.

Teorema 1. Para todo alfabeto S, S* es infinito enumerable.


Teorema 2. El conjunto de todos los lenguajes sobre S no es numerable. Demostracin. Llamemos L al conjunto de todos los lenguajes sobre S, si L es numerable, por tanto podemos enumerarlo como A0, A1, A2, S* puede numerarse como w0, w1, w2, Sea B = {wi | wi Ai}. B contiene las palabras que no pertenecen al lenguaje que tienen el mismo ndice que las mismas. Pero como B es un lenguaje B = Ak para algn k. Si wk B, entonces wk Ak = B. Y por lo tanto wk esta y no esta en Ak. Lo mismo sucede si suponemos wk B. Por lo tanto L no es numerable.

El teorema 2 estipula que hay una cantidad innumerable de lenguajes sobre un alfabeto particular. Por tanto, no existe ningn mtodo de especificacin de lenguajes que sea capaz de definir todos los lenguajes sobre un alfabeto.

LENGUAJES REGULARES Y EXPRESIONES REGULARES

Sea S un alfabeto. El conjunto de los lenguajes regulares sobre S se define recursivamente como sigue: 1. 2. es un lenguaje regular {e} es un lenguaje regular

3.
4. 5.

Para todo a S {a} es un lenguaje regular


Si A y B son lenguajes regulares, entonces A B, A B , A* son lenguajes regulares Ningn otro lenguaje sobre S es regular.

EJEMPLO

Por ejemplo. El lenguaje de todas las cadenas sobre {a, b, c} que no tienen ninguna subcadena ac es un lenguaje regular, y puede expresarse por A = {c}* ({a} {b}{c}*)*

SIMPLIFICACIN

Se puede simplificar la notacin mediante el uso de expresiones regulares. Las equivalencias son: a b denota {a} {b} ab denota {ab} a* denota {a}* a+ denota {a}+ Ejemplo: A = {c}* ({a} {b}{c}*)* = c* (a bc*)*

También podría gustarte