Está en la página 1de 6

TEMA 1.

LENGUAJES FORMALES

Definiciones:
Alfabeto: es un conjunto finito no vacío de símbolos (gráficos). Los elementos de un alfabeto
se llaman “letras” o “símbolos”. Sea ∑ un alfabeto y sea “a” una letra, decimos que la letra
pertenece al alfabeto y lo representaremos así: a ∈ ∑.
Subalfabeto: es un subconjunto de un alfabeto. Por ejemplo las vocales en el alfabeto latino.
Palabra: Se llama “palabra”, “sentencia” o “cadena”, sobre un alfabeto ∑ a toda secuencia
ordenada finita de símbolos de ∑, con o sin repeticiones.
Longitud de palabra: llamamos longitud de una palabra al número de símbolos que la
componen. Representaremos la longitud de la palabra x con la notación |x|.
Palabra vacía: la “palabra vacía” es la palabra cuya longitud es cero. Se representa con la letra
griega lambda minúscula (λ). λ no pertenece a ningún alfabeto y | λ | = 0
Lenguaje universal: El conjunto de todas las palabras que se pueden formar con las símbolos
de un alfabeto ∑ se llama “lenguaje universal” de ∑. Lo representaremos cómo ∑*.
Evidentemente es un conjunto infinito. λ∈∑* cualquiera que sea el alfabeto ∑.
Colorario: la palabra vacía pertenece a todos los lenguajes universales de todos los alfabetos
posibles.
Palabra inversa: Dada una palabra u, u’ o u-1 inversa de u si u-1 es la palabra con los mismos
símbolos de u pero en orden inverso.
Definición formal:
I. Si u= λ -> u-1= λ
II. Si |u|> 0 , u=wa dónde a∈∑ -> u=aw-1
Palabra simétrica: (capicúa o palíndroma): u es simétrica si u∈∑* y u =u-1
Operaciones con palabras
Dado un ∑, cualquiera, la concatenación c:
 Concatenación c: ∑*x∑* ->∑*
 x, y -> w=x·y (una palabra a continuación de la otra)
Propiedades de la concatenación:
1. Operación cerrada: la concatenación de dos palabras de ∑* es una palabra de ∑*.
-Concatenación c: ∑*x∑* à∑* Es ley de composición interna.
2. Propiedad asociativa: x(yz) = (xy)z
3. Existencia de elemento neutro. La palabra vacía λ es el elemento neutro de la
concatenación: λx = xλ = x
La concatenación no tiene la propiedad conmutativa. Contraejemplo: x=ABC , y=AD. Es
evidente que xy ≠ yx.
4. Simplificativas: xy = xz ⇒ y = z; xy = zy ⇒ x = z
5. (xy)-1 = y-1·x-1
Demostración. Inducción sobre la longitud de “y”
• Si |y| = 0 ⇒ y = λ
• (xy) -1= (xλ) -1= x-1
• y-1 x-1 = λ -1 x -1 = λ x -1 = x -1
• Hipótesis de inducción: Supongamos que la propiedad se cumple para todas las
palabras “y” de tamaño n, y todas las palabras “x” de cualquier tamaño. (xy) -1 = y-1·x-1
si | y| = n
• Hay que demostrar que siendo ∀ y ∈ Σ* / |y|=n+1 se cumple que: (xy) -1 = y-1·x-1
• Como |y|=n+1 -> ∃a ∈∑ de tal manera que y=ua (y ∈∑*) con |u|=n y a ∈∑
(xy) -1 = (x(ua))-1= ((xu)a)-1 = a(xu) -1 = a(u-1x-1) = (au-1) x-1 = y-1x-1
Potencia
 xi = x·x·x (i veces), x0= λ
 Propiedades de la potencia: xi+1 = xi ·x = x · xi; xi+j = xi ·xj ;|xi | = i · |x|
 ∑*- {λ} puede originarse con los símbolos de ∑ y la operación concatenación. ∑ es el
conjunto de generadores de ∑*- {λ}
Definición formal de lenguajes
Lenguaje: Podemos definir el lenguaje L como L = {x∈∑* / x cumple P}
∅ es un subconjunto de ∑*
No confundir con {λ}
 Cardinal(∅) = 0
 Cardinal ({λ}) =1
Tanto ∅ como {λ} son lenguajes sobre cualquier alfabeto. El alfabeto ∑ puede considerarse
como uno de los lenguajes generados por él mismo.
Notamos por ℒ = {lenguajes sobre ∑}
• Ejemplo 1:
 ∑ = {0, 1}
 L1= {1, 10, 100, 1000 …} L es el conjunto de las palabras que empiezan por 1 seguidos
de cero o más ceros.
• Otros ejemplos sobre el mismo alfabeto:
 L2 = { x∈∑* / |x| = 2· (número par)}
 L3 = { x∈∑* / |x| = 2·+1 (número impar)}
Operaciones con lenguajes
Union
Sean dos lenguajes definidos sobre el mismo alfabeto, L1 y L2 lenguajes sobre ∑. Llamamos
“unión” de los dos lenguajes, L1∪ L2, al lenguaje definido de la siguiente forma: {x ∈∑* / x∈L1
o x∈L2}
Propiedades de la unión:
1. Operación cerrada: la unión de dos lenguajes sobre el mismo alfabeto es también un
lenguaje sobre dicho alfabeto.
Unión ∪: ℒ x ℒ -> ℒ
L1, L2 -> L1 ∪ L2
2. Propiedad asociativa:
∀L1, L2, L3 ∈ ℒ
(L1∪ L2) ∪ L3 = L1∪ (L2 ∪ L3)
Propiedades de la union (cont):
1. Operación cerrada:
2. Propiedad asociativa:
3. Existencia de elemento neutro: cualquiera que sea el lenguaje L, el lenguaje vacío ∅
cumple que:
o ∀L∈ℒ
o ∅∪L=L∪∅=L
4. Propiedad conmutativa:
o ∀ L1, L2 ∈ ℒ
o L1∪ L2 = L2∪ L1
Sean dos lenguajes definidos sobre el mismo alfabeto, L1 y L2 lenguajes sobre ∑. Llamamos
“concatenación” o “producto” de los dos lenguajes, L1 L2 al lenguaje definido de la siguiente
forma: {(xy) ∈∑* / x∈L1 ⋀ y∈L2}
Propiedades de la concatenación:
1. Operación cerrada: la unión de dos lenguajes sobre el mismo alfabeto es también un
lenguaje sobre dicho alfabeto.
o Concatenación c: ℒ x ℒ à ℒ
L1, L2 à L1 · L2
2. Propiedad asociativa:
o ∀L1, L2, L3 ∈ ℒ
o (L1 · L2) · L3 = L1· (L2 · L3)
3. Elemento neutro: cualquiera que sea el lenguaje L, el lenguaje de la palabra vacía { λ};
cumple que: { λ} L = L { λ} = L
La concatenación no es conmutativa L1 · L2 ≠ L2 · L1
Potencia
Se llama potencia “i-ésima” de un lenguaje a la operación que consiste en concatenarlo
consigo mismo i veces.
 L1 = L
 Li = L · L · L · L · ... · L (i veces)
Se verifica que:
 Li+1 = Li · L = L · Li (i > 0)
 Li · Lj = Li+j (i, j > 0)
Definición L0 = {λ} cualquiera que sea L.
Cierre,clausura o Estrella de Kleene de un lenguaje L: operación unaria que se aplica sobre
un conjunto de cadenas de caracteres o un conjunto de símbolos o caracteres (alfabeto), y
representa el conjunto de las cadenas que se pueden formar tomando cualquier número de
cadenas del conjunto inicial, posiblemente con repeticiones, y concatenándolas entre sí.
 L*= U ∞i=0 L i = L0 U L1 U L2 U L3…;
𝐿0 = {λ}
 Definiremos así la clausura positiva de un lenguaje L:
L+= U∞ i=1 Li
 Como ∑ es un lenguaje sobre ∑, se cumple que:
∑+=∑ - {λ}
 Son evidentes las siguientes identidades:
L* =L+ U {λ}
L+ =L x L*=L*x L
Lenguaje inverso o Reflexión de lenguajes
Sea L un lenguaje cualquiera sobre ∑. Se llama “lenguaje inverso” o “reflejo” de L, y se
representa como L-1
 L-1 = {w ∈ ∑* / w=u-1 donde u∈ L}
Proposición:
- (L1L2) -1=L2 -1 L1 -1
- (∑*)-1= ∑*
Intersección
Sean dos lenguajes definidos sobre el mismo alfabeto, L 1⊂∑* y L2⊂∑*. Llamamos
“intersección” de los dos lenguajes, L1 ∩ L2 al lenguaje definido de la siguiente forma: L 1 ∩ L2 =
{x ∈ ∑* / x∈L1 ⋀ x ∈L2}
Propiedades de la intersección:
1. Operación cerrada: la concatenación de dos lenguajes sobre el mismo alfabeto es
también un lenguaje sobre dicho alfabeto.
o Intersección ∩: ℒ x ℒ -> ℒ
L1, L2 -> L1 ∩ L2
2. Propiedad asociativa:
o ∀L1, L2, L3 ∈ ℒ
o (L1 ∩ L2) ∩ L3 = L1 ∩ (L2 ∩ L3)
Propiedades de la intersección (cont):
1. Operación cerrada:
2. Propiedad asociativa:
3. Elemento neutro: cualquiera que sea el lenguaje L, el lenguaje universal ∑* cumple
que: L ∩ ∑* = L
4. Propiedad conmutativa:
o ∀L1, L2 ∈ ℒ
o L1 ∩ L2= L2 ∩ L1
5. Propiedad idempotente: cualquiera que sea L, se verifica que L ∩ L = L
Complementación
Sea un ∑ y L sobre ∑*, llamamos lenguaje complementario al lenguaje definido de la siguiente
forma: L= {w ∈ ∑* / w ∉ L} = ∑* - L
Ejemplo:
o L1 = {x ∈ ∑* / |x| = 2̇}
o L2 = {x ∈ ∑* / |x| = 2̇ + 1}
o L1 = L2
Ejemplo: ∑*= ∅
Ejemplo: Σ+ = {λ}
Propiedades de la complementación (Leyes de Morgan):
∀ L1 , L2 ϵ 𝔗 ;
1. L1 ∩ L2= L1 ∪ L2
2. L1 ∩ L2 = L1 ∪ L2
Representación finita de lenguajes
Ejemplo previo 1)
El lenguaje L1 = {x ∈ {0, 1}* / 111 es parte de x } se puede escribir de distintas formas:
o L1 =
o L1 =
o L1 =
Ejemplo previo 2)
El lenguaje L2 = {x ∈ {a, b}* / x acaba en a } se puede escribir de distintas formas:
o L2 =
o L2 =
o L2 =
Un lenguaje infinito ha encontrado una representación finita usando las operaciones
concatenación, cierre de Kleene, unión de lenguajes, potencia, etc.
Expresión regular
Expresión regular. Sea ∑, un alfabeto,
 α es expresión regular de ∑, α ∈ ER(∑)
 Se forma un nuevo alfabeto B
 B = ∑ ∪ {∅, λ, +, *, · , ( )}
 α ∈ B* si
i. a ∈ ∑ ⇒ a, ∅, α son expresiones regulares sobre ∑
ii. α, β ∈ ER(∑) ⇒ α + β ∈ ER(∑)
iii. α, β ∈ ER(∑) ⇒ α x β ∈ ER(∑)
iv. α ∈ ER(∑) ⇒ α*∈ ER(∑) que se define α∞ i=0 αi (α0= α)
v. α ∈ ER(∑) ⇒( α) ∈ ER(∑)
Son expresiones regulares de ∑ únicamente las obtenidas por aplicación de un número finito
de veces de las 5 reglas anteriores.
Orden de prioridad
Mayor prioridad * (cierre) -> · (concatenación) -> + (unión)
El orden se modifica mediante paréntesis: Ejemplo: (α + β) · ϒ
Lenguaje L(α)
Proposición: Toda expresión regular sobre ∑, α ∈ ER (∑), representa finitamente un lenguaje
sobre ∑, el lenguaje L(α)⊂∑
Definición recursiva:
El Lenguaje L(α) vendrá definido así:
• Si α =∅, L(α)= L (∅)= ∅
• Si α = λ, L(α)= L(λ)={λ}
• Si α = a, a∈∑, L(α)=L(a)={a}
• Si α y β son ER, L(α+ β) = L(α) + L(β)
• Si α y β son ER, L(αx β) = L(α) x L(β)
• Si α es ER,L(α*)=(L(α))*
IMPORTANTE: L⊂∑* es un lenguaje regular ⇔ ∃ α ∈ ER(∑) con L(α) = L
Todo lenguaje finito es regular. Cada palabra es un lenguaje unitario y la unión de todos es el
lenguaje
Proposición: L lenguaje regular ⇒ L-1 regular
Ejemplos de lenguajes regulares:
∅, {λ},{a} son lenguajes regulares
L(α) = L(abca) =L(a)L(b)L(c)L(a)={a}{b}{c}{a}={abca}
L((a + b)*a) = {w∈{a,b}*/w termina en a}
Equivalencia de Expresiones Regulares
Equivalencia de ER: Dos expresiones regulares α y β son equivalentes (representado por α ≡ β)
si describen el mismo lenguaje regular: L(α) = L(β).
α ≡ β <-> L(α) = L(β)
Ejemplo de ER equivalentes: α α *+ λ = α *
 α*= (λ + α+ α2+…)
 α α*+ λ= α (λ+ α+ α2+…) + λ= (α+ α2+…) + λ
Propiedades de las Expresiones Regulares
1. + es asociativa:
α +(β+ϒ) = (α +β) +ϒ
2. + es conmutativa:
α +β = β+ α
3. · es asociativa:
α · (β· ϒ) = (α · β) · ϒ
4. · es distributiva respecto a la + (unión):
 α · (β+ ϒ) = α · β + α · ϒ
 (β+ ϒ) · α= β· α + ϒ· α
5. · tiene elemento neutro λ:
α · λ= λ· α= λ
6. + tiene elemento neutro ∅:
α +∅=∅+ α= α
7. λ*= λ
8. ∅ α= α∅=∅
9. ∅*= λ
10. α*· α*= α*
11. α· α*= α*· α
12. (α*)*= α*
13. α*= λ + α· α*
14. (α*+β*)*=( α* β*)*= (α+β)*
15. ( α*+ β*)*= (α* β*)*=(α+β)*
16. (α β*)* α*=( α +β)*

También podría gustarte