Está en la página 1de 34

Modelos de Computación

Tema 2: Lenguajes Formales

Grado en Ingeniería de Sistemas de Información


Curso 2020/2021
Sergio Saugar García

Universidad CEU San Pablo


Escuela Politécnica Superior
Departamento de Tecnologías de la Información
Índice

1. Concepto de Lenguaje Formal


2. Operaciones sobre Lenguajes Formales (u otros conjuntos)

2
Índice

1. Concepto de Lenguaje Formal


2. Operaciones sobre Lenguajes Formales (u otros conjuntos)

3
Concepto de Lenguaje Formal
(i)

• ¿Qué es un lenguaje?
– Informalmente: un lenguaje es un conjunto de
palabras o sentencias formadas sobre un alfabeto

• Pasaremos a definirlo de manera formal

4
Concepto de Lenguaje Formal
(ii)

• Alfabeto:
– Definición (Alfabeto):
• Conjunto finito, no vacío, de elementos
Generalmente usaremos S para especificar alfabetos y
los elementos los denominaremos “letras” o “símbolos”
• Ejemplos: ¿Cuáles son alfabetos?
– los alfabetos español, inglés, o alemán - S4={1, A, 2, B}
– S1={0,...,9}, 0ÎS1 - S5={a, b, c, d}
– S2={x | x es un símbolo del código ASCII} - S6={}
– S3={(, )} - S7=À

5
Concepto de Lenguaje Formal
(iii)

• Palabras:
– Definición (Palabra):
• Sea un alfabeto S. Una palabra sobre S es una secuencia finita
de las letras de ese alfabeto.
• La secuencia vacía representa la palabra vacía y la anotamos
con l

• Ejemplos:
– sobre S5 ={a,b,c,d} Þ l, a, b, c, d, abc, aab, dcba, ...
– sobre S1 ={0,...,9} Þ l, 0, 0000, 010, 9980, ...
– sobre S3 ={(,)} Þ l, (, ), (), (()()), )())), ...

6
Concepto de Lenguaje Formal
(iv)

• Palabras:
– Definición (Longitud de una palabra):
• Se llama longitud de una palabra x, y se representa por |x|, al
número de símbolos que la componen.

• Ejemplos:
– sobre S5 ={a,b,c,d}
» |l|=0
» |a|=1
» |abc|=3

7
Concepto de Lenguaje Formal
(v)

• Operaciones con palabras:


– Definición (Concatenación):
• Sean dos palabras x e y definidas sobre el alfabeto S. La
concatenación de x e y, denominada “xy”, es una palabra que
conGene 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 Î S:


Þ xy= A1A2...AnB1B2...Bm

• Ejemplos:
x =abc, y =da, definidos sobre S={a,b,c,d}
xy=abcda ; |xy|=|x|+|y|=5
8
Concepto de Lenguaje Formal
(vi)

• Operaciones con palabras:


– Propiedades de la concatenación:
• Operación cerrada: sí
Si x e y están definidos sobre S, entonces xy está definido
sobre S
• asociativa: sí
x(yz)=(xy)z
• Elemento neutro: l
xl=lx=x
• Conmutatividad: no
xy¹yx
9
Concepto de Lenguaje Formal
(vii)

• Operaciones con palabras:


– Definición (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

10
Concepto de Lenguaje Formal
(viii)

• Operaciones con palabras:


– Propiedades de la potencia:
" i, j > 0
• xi+1=xxi=xix
• xixj=xi+j
– Para que estas propiedades se cumplan " i, j ³ 0 definimos x0=l
(palabra vacía):
Si i=0 Þ x0+1=xx0=x Þ se cumple si definimos x0=l
Si i,j=0 Þ xixj=x0x0=x0+0=x0 Þ se cumple si ll=l=x0
– Nota: ll=l; lx=x; llxl=x
• |xi|=i×|x|

11
Concepto de Lenguaje Formal
(ix)

• Operaciones con palabras:


– Definición (Palabra inversa):
• Sea x=A1A2...An con AiÎS una palabra sobre el alfabeto S. Se
llama palabra refleja o inversa de x, y se representa por x-1, a
la palabra AnAn-1...A1. Si x=l entonces x-1=l.

• Ejemplos:
x =abc Þ x-1=cba

– Propiedades de la palabra inversa:


• |x-1|=|x|
12
Concepto de Lenguaje Formal
(x)

• Lenguajes Formales:
– Definición (Lenguaje universal):
• Sea S un alfabeto. El lenguaje universal de S es el conjunto
formado por todas las palabras que se pueden formar con las
letras de S. Representamos dicho lenguaje con W(S).

• Ejemplos:
– S1 ={a} Þ W(S1)={l, a, aa, aaa, ...}

– Nota: La palabra vacía pertenece a todos los lenguajes


universales de todos los alfabetos posibles
13
Concepto de Lenguaje Formal
(xi)

• Lenguajes Formales:
– Definición (Lenguaje):
• Sea un alfabeto S. Un lenguaje L sobre S es cualquier
subconjunto del lenguaje universal W(S).
• Hay lenguajes finitos, infinitos y vacíos

14
Concepto de Lenguaje Formal
(y xii)

• Lenguajes Formales:
– Definición (Lenguaje):
• Ejemplos:
S1 ={a} Þ W(S1)={l, a, aa, aaa, ...}
L1 ={a} Í W(S1)
L2 ={} Í W(S1) (L2 = Æ)
L3 =S1 Í W(S1)
L4 =W(S1) Í W(S1)
L5 ={l} Í W(S1) (Nota: L5¹L2)
L6 ={l, a, aa, aaa} Í W(S1)
L7 ={l, a, aaa, aaaaa, ...} Í W(S1)

15
Índice

1. Concepto de Lenguaje Formal


2. Operaciones sobre Lenguajes Formales (u otros conjuntos)

16
Operaciones sobre Lenguajes Formales
(i)

• Unión:
– Definición (Unión de lenguajes):
• Sea el alfabeto S y dos lenguajes L1ÍW(S) y L2ÍW(S). 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}

17
Operaciones sobre Lenguajes Formales
(ii)

• Unión:
– Propiedades de la unión:
• Operación cerrada: L1ÍW(S), L2ÍW(S) Þ L1ÈL2ÍW(S)
(la unión de dos lenguajes sobre el mismo alfabeto es también un lenguaje
sobre este alfabeto)

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


• Elemento neutro: "L1, N È L1 = L1 ¿Que es N?
• Conmutativa: L1È L2 = L2 È L1
• Idempotencia: L È L = L

18
Operaciones sobre Lenguajes Formales
(iii)

• Concatenación:
– Definición (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}.

– Ejemplos: S ={a,b,c}
L1 ={ab, ac, cb}; L2={b, bba} Þ
L1L2={abb,abbba,acb,acbba,cbb,cbbba}

L1 ={a, aa, aaa, ...}; L2={l, b, bb, bbb, ...} Þ L1L2=¿?


¿Qué pasa si L1 o L2 es Æ?
19
Operaciones sobre Lenguajes Formales
(iv)

• Concatenación:
– Propiedades de la concatenación:

• Cerrada: L1ÍW(S), L2ÍW(S) Þ L1L2ÍW(S)


• Asociativa: (L1L2)L3 = L1(L2L3)
• No es conmutativa: ¬("L1, L2: L1L2=L2L1)
• Elemento neutro({l}): "L1: L1{l}={l}L1=L1
• No es idempotente: ¬("L: LL=L)

20
Operaciones sobre Lenguajes Formales
(v)

• Potencia de un lenguaje:
– Definición (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)

21
Operaciones sobre Lenguajes Formales
(vi)

• Potencia de un lenguaje:
– Propiedades de la potencia:
• Cerrada: L Í W(S) Þ Li Í W(S)
• Li+1 = LiL = LLi (i>0)
• LiLj = Li+j (i,j>0)
¿Que pasa si i, j = 0?
L0+1 = L1 = L = L0L Þ Si L0={l}
L0+0 = L0 = L0L0 = {l}{l} = {l}

• Se define L0 = {l} para que las propiedades se cumplan "i,j ³ 0.

22
Operaciones sobre Lenguajes Formales
(vii)

• Potencia de un lenguaje:
– Ejemplos:

L1 = {l,ab, ac}
Þ L12={l,ab,ac,abab,abac,acab,acac}
Þ L13={l,ab,ac,abab,abac,acab,acac,ababab,ababac,
abacab,abacac,acabab,acabac,acacab,acacac}

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


Þ L22=¿?
Þ L23=¿?

23
Operaciones sobre Lenguajes Formales
(viii)

• Clausura de un lenguaje:
– Definición (Clausura posiDva):
• La clausura posi;va de un lenguaje L se define por:

¥ i
L+= !i =1 L

24
Operaciones sobre Lenguajes Formales
(ix)

• Clausura de un lenguaje:
– Clausura positiva (cont.):
• Ejemplos:
– 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+= ! Li ={a,aa,aaa,aaaa,...} = L
i =1

– S={a,b}, S es un lenguaje sobre S, ya que SÍW(S)


¥
S+= ! i =1
S i
={a,b,aa,ab,ba,bb,aaa,...} = W(S) - {l}

• Nota: Si lÏL, entonces lÏL+.


25
Operaciones sobre Lenguajes Formales
(x)

• Clausura de un lenguaje:
– Definición (Clausura, Iteración o cierre):
• La clausura de un lenguaje L se define por:
¥
L*= !i =0 Li

• Nota: " L: lÎL*, ya que {l}=L0.

– Propiedades de la clausura:
• Cerrada: LÍW(S)Þ L+ÍW(S) , L*ÍW(S)
¥
• L*=L0È( !i =1 Li)= L0ÈL+={l}ÈL+
• L+= LL*= L*L ¿Demostración?

26
Operaciones sobre Lenguajes Formales
(xi)

• Reflexión de un lenguaje:
– Definición (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}.
– Ejemplos:
• L ={ana, julio, jesus, norma} Þ L-1={ana, oiluj,susej,amron}
• L ={a, aa, aaa,...} Þ ¿L-1?

– Propiedades de la reflexión:
• Cerrada: LÍW(S) Þ L-1ÍW(S)

27
Operaciones sobre Lenguajes Formales
(xii)

• Otras operaciones clásicas de conjuntos:


– Definición (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ÍW(S) , L2ÍW(S) Þ L1ÇL2ÍW(S)
• Asociativa: (L1ÇL2) ÇL3=L1Ç (L2ÇL3)
• Conmutativa: L1ÇL2= L2ÇL1
• Idempotencia: LÇL=L
• LÇÆ=Æ
28
Operaciones sobre Lenguajes Formales
(xiii)

• Otras operaciones clásicas de conjuntos


– Definición (Complemento):
• Sea L un lenguaje sobre el alfabeto S. El complemento de L,
denotado con L (o con c(L)) es el siguiente lenguaje:
L ={x|xÎW(S) y xÏL}

– Propiedades del complemento:


• Cerrada: LÍW(S) Þ L ÍW(S)
• W(Σ) =Æ
• L =L

29
Operaciones sobre Lenguajes Formales
(xiv)

• Otras operaciones clásicas de conjuntos


– 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ÍW(S) , L2ÍW(S) Þ L1-L2ÍW(S)
• No es asocia=va: ¬(" L1, L2: (L1-L2)-L3=L1-(L2-L3))
• No es conmuta=va: ¬(" L1, L2: L1-L2=L2-L1)
• No es idempotente: " L: L-L=Æ
• A-Æ=A
30
Operaciones sobre Lenguajes Formales
(xv)

• Otras leyes de las operaciones sobre conjuntos


– Leyes de De Morgan:
• L1 Ç L2 = L1 È L 2
• L1 È L2 = L1 Ç L 2

– Leyes de complemento:
• L Ç L =Æ
• L È L = W(S)

31
Operaciones sobre Lenguajes Formales
(y xvi)

• Otras leyes de las operaciones sobre conjuntos


– DistribuDvidad:
• L1 È (L2 Ç L3) = (L1 È L2) Ç (L1 È L3)
• L1 Ç (L2 È L3) = (L1 Ç L2) È (L1 Ç L3)

– L1 - L2 = L1 Ç L 2 = L1 È L 2

– L = W(S) - L

32
¿Preguntas?

¿?

33
Modelos de Computación
Tema 2: Lenguajes Formales

Grado en Ingeniería de Sistemas de Información


Curso 2020/2021
Sergio Saugar García

Universidad CEU San Pablo


Escuela Politécnica Superior
Departamento de Tecnologías de la Información

También podría gustarte