Sei sulla pagina 1di 22

Lenguajes Formales

Diana Ruth Martínez Suárez


Programa Ingeniería de Sistemas
Universidad de Pamplona
Conceptos básicos
Alfabeto

Un alfabeto es un conjunto (finito y no vacio) de símbolos.

Generalmente usaremos  para especificar un alfabeto.

Ejemplos:

• los alfabetos español, inglés, o alemán


• 1={0,...,9}, 01
• 2={x | x es un símbolo del código ASCII}
• 3={(, )}
• 4={1, A, 2, B}
• 5={a, b, c, d}
• 6={}
• 7=
2
Conceptos básicos

Cadena

Sea un alfabeto . Una cadena (a veces llamada palabra) sobre  es una


sequencia finita de símbolos de ese alfabeto.

01101 es una cadena del alfabeto Σ={0,1}

La cadena vacia  es la cadena con cero símbolos


Ejemplos:
sobre Σ5 ={a,b,c,d}:
 a, b, c, d, abc, aab, dcba, ...
sobre Σ1 ={0,...,9}:
, 0, 0000, 010, 9980, ...
sobre Σ3 ={(,)}
, (, ), (), (()()), )())), ...
Conceptos básicos
Longitud

Se llama longitud de una palabra x, y se representa por |x|, al


número de símbolos que la componen.

| 01101 | = 5
|  |=0,
| a |=1,
| abc |=3
Conceptos básicos
Concatenación

Sean dos palabras x e y definidas sobre el alfabeto Σ . La concatenacion de x


e y, denominada “xy”, es una palabra que contiene todos los símbolos (de
derecha a izquierda) de x seguidos de los símbolos de y (de derecha a
izquierda).
Sean:

x=A1A2...An e y=B1B2...Bm con Ai, Bi  Σ

⇒ xy= A1A2...AnB1B2...Bm

Ejemplos:
x =abc, y =da, definidos sobre Σ ={a,b,c,d} xy=abcda ; |xy|=|
x|+|y|=5
Operaciones con palabras

Propiedades de la concatenación

 Operación cerrada: sí
Si x e y están definidos sobre Σ, entonces xy está definido sobre Σ.

 asociativa: sí
x(yz)=(xy)z

 Elemento neutro: 
x  =  x=x

 Conmutatividad: no
xy ≠ yx
Operaciones con palabras

Potencia

Sea i un número natural, y x una palabra. La potencia i-ésima de x,


denominada xi, es la operación que consiste en concatenarla consigo
misma i veces.

Ejemplos:
x =abc ⇒ x1=abc x2=abcabc x3=abcabcabc

La potencia k de un alfabeto es el conjunto de cadenas con longitud k


si Σ={0,1}, Σ1 ={0,1}, Σ2 ={00,01,10,11}
Operaciones con palabras

Propiedades de la potencia:
Para todo i, j > 0

• xi+1=xxi=xix
xi xj=xi+j

•Se define x0=  (palabra vacía):


Si i=0 ⇒ x0+1=x1=x=x  =xx0= x=x0x
Si i,j=0 ⇒ xixj=x0x0=   =  =x0=x0+0

  =  ;  x=x;   x  =x

• |xi|=i . |x|
Operaciones con palabras

Palabra inversa

Sea x=A1A2...An con Ai una palabra sobre el alfabeto . Se llama


palabra refleja o inversa de x, y se representa por x-1, a la palabra AnAn-
1...A1. Si x= entonces x =.
-1

Ejemplos:
x =abc ⇒ x-1=cba

❑ Propiedades de la palabra inversa

|x-1|=|x|
Lenguaje Universal

Sea Σ un alfabeto. El lenguaje universal de Σ es el conjunto formado por


todas las palabras que se pueden formar con las letras de Σ.
Representamos dicho lenguaje con Σ*.

Ejemplos:
Σ1 ={a}
⇒Σ1* ={, a, aa, aaa, ...}

La palabra vacía pertenece a todos los lenguajes universales de


todos los alfabetos posibles.
Lenguaje formal
Sea un alfabeto Σ. Un lenguaje L sobre Σ es cualquier subconjunto del
lenguaje universal Σ*.

Σ1 ={a} ⇒ Σ1*={, a, aa, aaa, ...} L1 ={a}  Σ1*


L2 ={}  Σ1* L2 = )
L 3 = Σ1  Σ 1 *
L4 =Σ1*  Σ1*
L5 ={}  Σ1* (L5  L2)
L6 ={, a, aaa, aaaaa}  Σ1*
L7 ={, a, aaa, aaaaa, ...}  Σ1*

Hay lenguajes finitos, infinitos y vacíos.


Operaciones con lenguajes
Unión:

Sea el alfabeto Σ y dos lenguajes L1  Σ* y L2  Σ*. La unión de L1 y L2,


L1  L2, es un lenguaje que se define de la siguiente forma:
L1  L2={x|x  L1 o x  L2}.

Propiedades de la unión:

• Operación cerrada: L1  Σ*, L2  Σ*⇒ L1  L2  Σ*

• Asociativa: (L1  L2)  L3=L1 (L2  L3)

• Elemento neutro:  L1, N  L1 = L1 ¿Que es N?


Operaciones con lenguajes

Concatenación de lenguajes:

Sean dos lenguajes L1, L2. La concatenación de L1 y L2, representado por


L1L2 (a veces por L1.L2), es un lenguaje que se define de la siguiente forma:
L1L2={xy | x L1 , y L2}.

 ={a,b,c}

• L1 ={ab, ac, cb}; L2={b, bba} ⇒ L1L2={abb,abbba,acb,acbba,cbb,cbbba}

• L1 ={a, aa, aaa, ...}; L2={, b, bb, bbb, ...} ⇒ L1L2=¿?

¿Qué pasa si L1 o L2 es ?
Operaciones con lenguajes

Propiedades de la concatenación:

• Cerrada: L1 Σ*, L2 Σ* ⇒ L1L2 Σ*

• Asociativa: (L1L2)L3 = L1(L2L3)

• No es conmutativa: (L1, L2: L1L2=L2L1)

• Elemento neutro({}): L1: L1{}={}L1=L1

• No es idempotente: (L: LL=L)


Operaciones con lenguajes
Potencia de un lenguaje:

La potencia i-ésima de un lenguaje L consiste en el lenguaje resultante de


concatenar el lenguaje consigo mismo i veces.

Li = LLL...L (i veces)

Propiedades de la potencia:

■ Cerrada: L  Σ* ⇒ Li  Σ*
■ Li+1 = LiL = LLi (i >0)

■ LiLj = Li+j (i,j >0)

¿Que pasa si i, j = 0?
Se define L0 = {}
L0+1 = L1 = L = {}L=L0L L0L0= {}{} ={}=L0 = L0+0
Operaciones con lenguajes

Ejemplos:

L1 = {,ab, ac}

⇒ L12 ={,ab,ac,abab,abac,acab,acac}

⇒ L13 = {,ab,ac,abab,abac,acab,acac,ababab,ababac,
abacab,abacac,acabab,acabac,acacab,acacac}

L2 = {a, aa, aaa, ...}

⇒ L2 2 = ¿?

⇒ L23 = ¿?
Operaciones con lenguajes
Clausura positiva
La clausura positiva de un lenguaje L se define por:
ꝏ i

L + = Ui 1 L
 L ={a,aa,aaa,aaaa,...} = {an | n  1}

⇒ L2={ aa,aaa,aaaa,...} = {anam | n,m  1} = {an | n  2}


⇒ L3={ aaa,aaaa,...} = {anam | n  1, m  2} = {an | n  3}
L+ ={a,aa,aaa,aaaa,...} = L
 ={a,b},  es un lenguaje sobre , ya que *
+ ={a,b,aa,ab,ba,bb,aaa,...} = *- {}

Si L, entonces L+.


Operaciones con lenguajes

Clausura, Iteración o cierre

La clausura de un lenguaje L se define por:  i

 L: L*, ya que {}=L0.


L*= U L i0

Propiedades de la clausura

■ Cerrada: L Σ* ⇒ L+ Σ* , L* Σ*



L*=L0(Ui 1 Li )= L0L+={}L+
Operaciones con lenguajes

Reflexión
Sea L un lenguaje. Se llama lenguaje inverso (lenguaje reflejo)
de L, y se representa por L-1 al lenguaje: L-1={x-1|x  L}.

 L ={ana,julio,jesus,norma} ⇒ L-1={ana, oiluj,susej,amron}

 L ={a,aa,aaa,...} ⇒ ¿L-1?

Propiedades de la reflexión

Cerrada: L  Σ* ⇒ L-1  Σ*
Operaciones con lenguajes

Intersección

• Sean dos lenguajes L1 y L2. La intersección de L1 y L2, L1 L2, es el


lenguaje que se define por:
• L1 L2={x|x L1 y x L2}.

Propiedades de la intersección

• Cerrada: L1Σ* , L2Σ* ⇒ L1L2Σ*


• Asociativa: (L1L2) L3=L1 (L2L3)
• Conmutativa: L1L2= L2L1
• Idempotencia: LL=L
• L=
Operaciones con lenguajes

Definición (Diferencia)

Sean dos lenguajes L1 y L2. La diferencia de L1 y L2, L1- L2 (o L1\L2) es el


lenguaje que se define por:
L1- L2={x|x L1 y x L2}.

Propiedades de la diferencia

■ Cerrada: L1Σ* , L2Σ* ⇒ L1-L2Σ*


■ No es asociativa: ( L1, L2: (L1-L2)-L3=L1-(L2-L3))

■ No es conmutativa: ( L1, L2: L1-L2=L2-L1)

■ No es idempotente:  L: L-L=

■ A-=A
Operaciones con lenguajes
Leyes de complemento Leyes de Morgan
_

L L =  •
_ L1 L2= L1  L2

■ L L =Σ*
• L1 L2= L  L
1 2

L1 -L2=L1 L 2 = L1  L2
_

L = Σ* -L

Distributividad
■ L1(L2 L3)= (L1L2)( L1L3)

■ L1 (L2 L3)= (L1L2)  ( L1L3)

Potrebbero piacerti anche