Raul E Gutierrez de Pi´ nerez R.˜ · Lenguajes formales y automatas´ Raul E Gutierrez de Pi´...
Transcript of Raul E Gutierrez de Pi´ nerez R.˜ · Lenguajes formales y automatas´ Raul E Gutierrez de Pi´...
Lenguajes formales y automatas
Raul E Gutierrez de Pinerez [email protected]
Raul E Gutierrez de Pinerez R
Marzo, 2014
Lenguajes formales Raul E Gutierrez de Pinerez R
El alfabetoUn alfabeto es un conjunto finito no vacıo cuyos elementos se llamansımbolos.
Sea Σ = {a, b} el alfabeto que consta de los sımbolos a y b. Lassiguientes son cadenas sobre Σ: aba, abaabaaa, aaaab.El alfabeto binario Σ = {0, 1} son las cadenas sobre Σ que sedefinen como secuencias finitas de ceros y unos.Las cadenas son secuencias ordenadas y finitas de sımbolos.Por ejemplo, w = aaab 6= w1 = baaa.Sea Σ = {a, b, c, . . . , x, y, z} el alfabeto del idioma castellano.El alfabeto utilizado por muchos lenguajes de programacion.Sea Σ = {a, b, c} entonces podemos formar todas las cadenassobre Σ incluyendo la cadena vacıa.
Lenguajes formales Raul E Gutierrez de Pinerez R
Notacion de alfabetos, cadenas y lenguajes
Si bien un alfabeto Σ es un conjunto finito, Σ∗ es siempre unconjunto infinito (enumerable).Hay que distinguir entre los siguientes cuatro objetos, que sondiferentes entre sı: ∅, ε, {∅}, {ε}
Lenguajes formales Raul E Gutierrez de Pinerez R
Alfabetos
Operaciones con alfabetos
Si Σ es un alfabeto, σ ∈ Σ denota que σ es un sımbolo de Σ, portanto, si
Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
se puede decir que 0 ∈ Σ
Un alfabeto es simplemente un conjunto finito no vacıo que cumplelas siguientes propiedades, Dados Σ1 y Σ2 alfabetos
Entonces Σ1 ∪ Σ2 tambien es un alfabeto.Σ1 ∩ Σ2,Σ1 − Σ2 y Σ2 − Σ1 tambien son alfabetos.
Lenguajes formales Raul E Gutierrez de Pinerez R
Conjunto Universal
El conjunto de todas las cadenas sobre un alfabeto Σ, incluyendo lacadena vacıa, se denota por Σ∗
Sea Σ = {0, 1}Σ∗ = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, 100, 010, 110, . . .}Sea Σ = {a, b, c}, entoncesΣ∗ = {ε, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}Sea Σ = {a, b}, entoncesΣ∗ = {ε, a, b, aa, ab, ba, bb, aaa, aab, baa, . . .}
Lenguajes formales Raul E Gutierrez de Pinerez R
Concatenacion de cadenas
Cadenas
Dado un alfabeto Σ y dos cadenas u, v ∈ Σ∗, la concatenacion de u yv se denota como u · v o simplemente uv y se define ası:
1 Si v = ε, entonces u · ε = ε · u = u, es decir, la concatenacion decualquier cadena u con la cadena vacıa, a izquierda o derecha,es igual a u.
2 Si u = a1a2 . . . an, v = b1b2 . . . bm, entonces
u · v = a1a2 . . . anb1b2 . . . bm
Es decir, u · v es la cadena formada de escribir los sımbolos de uy a continuacion los sımbolos de v.
Lenguajes formales Raul E Gutierrez de Pinerez R
Potencia de una cadena
Dada w ∈ Σ∗ y n ∈ N, se define wn de la siguiente forma
wn =
ε si n = 0uu . . . u︸ ︷︷ ︸n−veces
si n ≥ 1
Potencia de una cadena de manera recursivaLa potencia de una cadena se define como w ∈ Σ∗ para n ∈ N
wn =
{ε, si n = 0wwn−1, si n > 0
Ejemplo. Sea una cadena w = acc sobre Σ = {a, c} entoncespodemos obtener w3 = ww2 = wwww0 = accaccaccε = (acc)3
Lenguajes formales Raul E Gutierrez de Pinerez R
Inversa de una cadena
Longitud de una cadena
La longitud de una cadena w ∈ Σ∗ se denota |w| y se define como elnumero de sımbolos de w (contando los sımbolos repetidos), esdecir:
|w| ={
0, si w = εn, si w = a1a2 . . . an
|aba| = 3, |baaa| = 4
Reflexion o inversa de una cadena
La reflexion o inversa de una cadena w ∈ Σ∗ se denota como wI y sedefine ası:
wI =
{ε, si w = εan . . . a2a1, si w = a1a2 . . . an
Lenguajes formales Raul E Gutierrez de Pinerez R
Inversa de una cadena de manera recursiva
La Inversa de una cadena Sea u ∈ Σ∗ entonces u−1 es la inversa.
wI =
{w si w = εyIa si w = ay, a ∈ Σ, y ∈ Σ∗
Sea x=’able’ entonces obtener xI
xI = (able)I = (ble)Ia= (le)Iba= (e)I lba= (ε)Ielba
= εelba= elba
Sea la concatenacion de las cadenas “ab” y “cd” que forma“abcd” sobre un alfabeto. Sabemos que (abcd)I = dcba, por tantodcba = (cd)I(ab)I . Por lo tanto, si w e y son cadenas y si x = wy,entonces xI = (wy)I = yIwI
En general, (xI)I = x, para demostrar, suponga quex = a1a2 . . . an.
Lenguajes formales Raul E Gutierrez de Pinerez R
Sufijos y prefijos
Cadena
Definicion formal: Una cadena v es una subcadena o subpalabra deu si existen x, y tales que u = xvy. Notese que x o y pueden ser ε ypor lo tanto, la cadena vacıa es una subcadena de cualquier cadena.
Un prefijo de u es una cadena v tal que u = vw para algunacadena w ∈ Σ∗. Se dice que v es un prefijo propio si v 6= u.Un sufijo de u es una cadena de v tal que u = wv para algunacadena w ∈ Σ∗. Se dice que v es un sufijo propio si v 6= u.
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplo de cadenas que son sufijos y prefijos
Sea Σ = {a, b, c, d} y u = bcbaadb
Prefijos de uεbbcbcbbcbabcbaabcbaadbcbaadb
Sufijos de uεbdbadbaadbbaadbcbaadbbcbaadb
Lenguajes formales Raul E Gutierrez de Pinerez R
La concatenacion como una operacion binaria
Operacion binaria
Una operacion binaria en un conjunto A es una funcionf : A×A→ A, esta debera satisfacer las siguientes propiedades:
1 La operacion binaria debera estar definida para cada parordenado de A, es decir, f asigna a UN elemento f(a, b) de A acada par ordenado (a, b) de elementos de A.
2 Como una operacion binaria es una funcion, solo un elementode A se asigna a cada par (a, b).
Sea A = Z, se define a ∗ b como a+ b. Entonces, ∗ es unaoperacion binaria en Z.Sea A = Z+, se define a ∗ b como a− b. Entonces ∗ no es unaoperacion binaria ya que no asigna un elemento de A acualquier par ordenado de elementos de A.
Lenguajes formales Raul E Gutierrez de Pinerez R
Concatenacion de cadenas como una operacion binaria
Concatenacion
La operacion de la concatenacion · es una operacion binariaentre cadenas de un alfabeto Σ, esto es:
· : Σ∗ × Σ∗ → Σ∗
Sean u, v ∈ Σ∗ y se denota por u · v o simplemente uv.
| uv |=| u | + | v |
Dado el alfabeto Σ y dos cadena w, u ∈ Σ∗
Entonces w · ε = ε · w = w.Si u = a1a2a3 . . . an, w = b1b2b3 . . . bm, entonces,
u · w = a1a2a3 . . . anb1b2b3 . . . bm
Por tanto | u · w |= n+m
La concatenacion de cadenas es asociativa. Es decir, siu, v, w ∈ Σ∗, entonces:
(uv)w = u(vw)
Lenguajes formales Raul E Gutierrez de Pinerez R
Semigrupos
Semigrupo
Sea (Σ∗, ·) es un semigrupo el cual es un conjunto no vacıo Σ∗ juntocon una operacion binaria asociativa · definida en Σ∗.
El conjunto P (S), donde S es un conjunto, junto con la operacionde la union (P (S),∪) es un semigrupo y es tambien unsemigrupo conmutativo.
∗ : P (S)× P (S)→ P (S)
Sea S = {a, b} entonces {a, b} ∪ (∅ ∪ {b}) = ({a, b} ∪ ∅) ∪ {b}El semigrupo (Σ∗, ·) no es un semigrupo cunmutativo porquepara u,w ∈ Σ∗ no se cumple que u · w = w · u.Sea w = ac, w1 = ab y w2 = bb tal que w,w1, w2 ∈ Σ∗ entonces
w(w1w2) = (ww1)w2
ac(abbb) = (acab)bb
acabbb = acabbb
Lenguajes formales Raul E Gutierrez de Pinerez R
Monoide
Monoide
Un monoide es un semigrupo (S, ∗) que tiene identico.
El semigrupo P (S) con la operacion de la union tiene comoidentico a ∅ ya que
∅ ∗A = ∅ ∪A = A = A ∪ ∅
Sea (Σ∗, ·, ε) un monoide con las siguientes propiedades:1 Es una operacion binaria, es decir la concatenacion es cerrada.∀x, y ∈ Σ∗, entonces x · y ∈ Σ∗.
2 La concatenacion es un semigrupo (Σ∗, ·) y por tanto · esasociativa ∀x, y, z ∈ Σ∗, (xy)z = x(yz)
3 La cadena vacıa ε es la identica para la concatenacion: ∀x ∈ Σ∗,ε · x = x · ε = x
Lenguajes formales Raul E Gutierrez de Pinerez R
Lenguajes
Lenguaje
Un lenguaje es un conjunto de palabras o cadenas. Un lenguaje Lsobre un alfabeto Σ es un subconjunto de Σ∗ y si L = Σ∗ es ellenguaje de todas las cadenas sobre Σ.
Sea L = ∅ el lenguaje vacıo∅ ⊆ L ⊆ Σ∗
Σ = {a, b, c}. L = {a, aba, aca}Σ = {a, b, c}. L = {a, aa, aaa} = {an : n ≥ 1}Σ = {a, b, c}. L = {ε, aa, aba, ab2a, ab3a} = {abna : n ≥ 0} ∪ {ε}Σ = {a, b, c}. L = {w ∈ Σ∗: w no contiene el sımbolo c}. Porejemplo, abbaab ∈ L pero abbcaa /∈ L.Sobre Σ = {0, 1, 2} el lenguaje de las cadenas que tienen igualnumero de ceros, unos y dos’s en cualquier orden.
Lenguajes formales Raul E Gutierrez de Pinerez R
Operaciones entre lenguajes
Operaciones entre lenguajes; Sean A,B lenguajes sobre Σentonces A ∩B, A ∪B, A−B operaciones de conjuntos.Las operaciones linguısticas son la concatenacion, potencia,inverso y clausura.Sean A,B lenguajes sobre Σ entonces,
A ∪B = {x|x : x ∈ A o x ∈ B}
{a} ∪ {b} = {a, b}{a, ab} ∪ {ab, aab, aaabb} = {a, ab, aab, aaabb}
Lenguajes formales Raul E Gutierrez de Pinerez R
Operaciones entre lenguajes
Sean A,B lenguajes sobre Σ entonces,
A ∩B = {x|x : x ∈ A y x ∈ B}
{a, ab} ∩ {ab, aab} = {ab}{a, aab} ∩ {a, ab, aab, aaabb} = {a, aab}{ε} ∩ {a, ab, aab, aaabb} = ∅Complemento en Σ∗:
∼ A = {x ∈ Σ∗|x /∈ A}∼ A = Σ∗ −A
A ={ Cadenas de longitud par} sobre Σ = {a, b}, entonces∼ A={cadenas de longitud impar}.
Lenguajes formales Raul E Gutierrez de Pinerez R
Operaciones entre lenguajes
Sean A,B lenguajes sobre Σ entonces,
A−B = {x|x : x ∈ A y x /∈ B}
Sea B: El lenguaje de todas las cadenas de ceros de cualquierlongitud. Entonces:Sea A = {0, 1}∗ y B = {0}∗ entoncesA−B = {0, 1}∗ − {0}∗ = 0∗1(0 ∪ 1)∗
A−B es el lenguaje de todas las cadenas de unos y ceros conalmenos un uno.
Lenguajes formales Raul E Gutierrez de Pinerez R
Lenguajes
Lenguaje Universal
Si Σ 6= ∅, entonces Σ∗ es el conjunto de todas las cadenas sobre Σ.Se le llama lenguaje universal.
Σ∗ es un conjunto infinito de cadenas de longitud finita sobre Σ.
TeoremaSean A y B dos lenguajes sobre el alfabeto Σ. Entonces A = B si ysolo si A ⊆ B y B ⊆ A.
⇒) Suponiendo que A = B, entonces si x ∈ A, como A = Bentonces x ∈ B por tanto A ⊆ B de la misma forma si x ∈ Bentonces como A = B entonces x ∈ A por lo tanto B ⊆ A.⇐) Se demuestra que si A ⊆ B y B ⊆ A entonces A = B.
Lenguajes formales Raul E Gutierrez de Pinerez R
Lenguajes
Sea el lenguaje del conjunto de cadenas con igual numero deceros y unos.
L1 = {ε, 01, 10, 0011, 0101, 1001, 000111, . . .}
y seaL = {anbn : n ≥ 0} ⊂ L1 ⊂ {0, 1}∗
La concatenacion de lenguajes de dos lenguajes A y B sobre Σ,notada por A.B o simplemente AB.AB = {uv : u ∈ A, v ∈ B}A · ∅ = ∅ ·A = ∅
A · ∅ = {uw : u ∈ A,w ∈ ∅} = ∅
Lenguajes formales Raul E Gutierrez de Pinerez R
Lenguajes
A · {ε} = {ε} ·A = A
A · {ε} = {uw : u ∈ A,w ∈ {ε}} = {u : u ∈ A} = A
Las propiedad distributiva generalizada de la concatenacion conrespecto a la union.
A ·⋃i∈I
Bi =⋃i∈I
(A ·Bi)
x ∈ A ·⋃i∈I
Bi ⇐⇒ x = u · v, u ∈ A, v ∈⋃i∈I
Bi
⇐⇒ x = u · v, u ∈ A, v ∈ Bj ,
∃j ∈ I⇐⇒ x ∈ A ·Bj ,∃j ∈ I
⇐⇒ x ∈⋃i∈I
(A ·Bi)
Lenguajes formales Raul E Gutierrez de Pinerez R
Lenguajes
Ejemplo. Sean A = {ab}, B1 = {a, b}, y B2 = {abb, b}
A ·⋃i∈I
Bi =⋃i∈I
(A ·Bi)
A ·⋃
i∈I=2
Bi = A · (B1 ∪B2)
A ·⋃
i∈I=2
Bi = {ab} · ({a, b} ∪ {abb, b})
{ab} · ({a, b} ∪ {abb, b}) = ({ab} · ({a, b}) ∪ ({ab} · {abb, b})
De igual forma se puede demostrar que:(⋃i∈I
Bi
)·A =
⋃i∈I
(Bi ·A)
Lenguajes formales Raul E Gutierrez de Pinerez R
Lenguajes
La concatenacion no es distributiva con respecto a la interseccion, esdecir, no se cumple que A · (B ∩ C) = A ·B ∩A · C. Contraejemplo:Sea A = {a, ε}, B = {ε}, C = {a} se tiene:
A · (B ∩ C) = {a, ε} · ∅ = ∅
Por otro lado,
A ·B ∩A · C = {a, ε} · {ε} ∩ {a, ε} · {a}= {a, ε} ∩ { a2, a} = a
Lenguajes formales Raul E Gutierrez de Pinerez R
Lenguajes
Potencia del lenguaje
Potencia del lenguaje Dado un lenguaje A sobre Σ y (A ⊆ Σ∗) yn ∈ N, se define
An =
{{ε}, si n = 0A ·An−1, si n ≥ 1
Ejemplo. Sea A = {ab} sobre un alfabeto Σ = {a, b}, entonces:A0 = {ε}A1 = A = { ab}A2 = A ·A1 = { abab}A3 = A ·A2 = { ababab}
Lenguajes formales Raul E Gutierrez de Pinerez R
Cerradura de Kleene
Def. formal de Cerradura de Kleene
La cerradura de Kleene de un lenguaje A ⊆ Σ∗ es la union de laspotencias: se denota por A∗
A∗ =⋃i≥0
Ai = A0 ∪A1 ∪A2 ∪ . . . ∪An
Observacion: A∗ se puede describir de la siguiente manera:
A∗ = {u1u2 . . . un : ui ∈ A,n ≥ 0}
Es el conjunto de todas las concatenaciones de la cadena A,incluyendo εla cerradura positiva se denota por A+
A+ =⋃i≥1
Ai = A1 ∪A2 ∪A3 ∪ . . . ∪An
Lenguajes formales Raul E Gutierrez de Pinerez R
Cerradura de Kleene
Observe que A∗ = A+ ∪ {ε} y A∗ = A+ si y solamente si ε ∈ AA+ = A∗ ·A = A ·A∗
A ·A∗ = A · (A0 ∪A1 ∪A2 ∪ . . .)= (A1 ∪A2 ∪A3 ∪ . . .)= A+
Se demuestra lo mismo que A+ = A∗ ·A
Lenguajes formales Raul E Gutierrez de Pinerez R
Cerradura de Kleene
A∗ ·A∗ = A∗
1 ⇒), Sea un x ∈ A∗ ·A∗, entonces x = u · v, con u ∈ A∗ y v ∈ A∗Por tanto x = u · v, con u = u1u2 . . . un, ui ∈ A, n ≥ 0 yv = v1v2 . . . vm, vi ∈ A, m ≥ 0 De donde
x = u · v = u1u2 . . . un · v1v2 . . . vm
con ui ∈ A, vi ∈ A, por lo tanto x, es una concatenacion den+m cadenas de A, ası que x ∈ A∗.
2 ⇐) Recıprocamente, si x ∈ A∗, entonces x = x · ε ∈ A∗ ·A∗.Esto prueba la igualdad de los conjuntos A∗ ·A∗ y A∗.
Lenguajes formales Raul E Gutierrez de Pinerez R
Cerradura de Kleene
(A∗)n = A∗, para todo n ≥ 1
(A∗)∗ = A∗
A+ ·A+ ⊆ A+
Contraejemplo de A+ ·A+ = A+. Sea Σ = {a, b}, A = {a} setiene que
A+ = (A1 ∪A2 ∪A3 ∪ . . .)= {a} ∪ {aa} ∪ {aaa . . .}= {an : n ≥ 1}
Por otro lado,
A+ ·A+ = {a, a2, a3, . . .} · {a, a2, a3, . . .}= {a2, a3, . . .}= {an : n ≥ 2}
Lenguajes formales Raul E Gutierrez de Pinerez R
Cerradura de Kleene
(A∗)+ = A∗
(A∗)+ = (A∗)1 ∪ (A∗)2 ∪ (A∗)3 ∪ . . .= A∗ ∪A∗ ∪A∗ . . .= A∗
(A+)∗ = A∗
(A+)∗ = (A+)0 ∪ (A+)1 ∪ (A+)2 ∪ . . .= {ε} ∪A+ ∪A+A+ ∪ . . .= A∗ ∪ (conjuntos contenidos en A+ )
= A∗
(A+)+ = A+
(A+)+ = (A+)1 ∪ (A+)2 ∪ (A+)3 ∪ . . .= (A+)1 ∪ (conjuntos contenidos en A+)
= A+
Lenguajes formales Raul E Gutierrez de Pinerez R
Operaciones claves
Operaciones claves en los lenguajes:
A∗ ⊆ Σ∗ A+ ⊆ Σ+
A+ ⊆ A∗
{ε}∗ = {ε} = {ε}+
∅0 = {ε}∅n = ∅, n ≥ 1
∅∗ = {ε} ∅+ = ∅
Lenguajes formales Raul E Gutierrez de Pinerez R
Inverso de un lenguaje
Inverso de un lenguaje
Sea A sobre Σ, se define AI como:
AI = {uI : u ∈ A}
Sean A y B lenguajes sobre Σ tal que (A,B ⊆ Σ∗)
(A.B)I = BI .AI
x ∈ (A ·B)I ⇐⇒ x = uI ,donde, u ∈ A ·B⇐⇒ x = uI , donde, u = vw, v ∈ A,w ∈ B
⇐⇒ x = (vw)I , donde, v ∈ A,w ∈ B
⇐⇒ x = wIvI , donde, v ∈ A,w ∈ B
⇐⇒ x = BIAI
Lenguajes formales Raul E Gutierrez de Pinerez R
Propiedades del inverso de un lenguaje
Sean A y B lenguajes sobre Σ tal que (A,B ⊆ Σ∗)
(A ∪B)I = AI ∪BI
(A ∩B)I = AI ∩BI
(AI)I = A
(A∗)I = (AI)∗
(A+)I = (AI)+
Lenguajes formales Raul E Gutierrez de Pinerez R
Lenguajes regulares
Los lenguajes regulares sobre un alfabeto Σ se definenrecursivamente como:
∅, {ε} y {a}, a ∈ Σ son lenguajes regulares.si A y B son lenguajes regulares, tambien lo son:
A ∪B (Union)A ·B (Concatenacion)A∗(Cerradura de Kleene)
Ejemplo 1. Dado Σ = {a, b} el lenguaje A de todas las palabrasque tienen exactamente una a: A = {b}∗ · {a} · {b}∗Ejemplo 2. Lenguaje de todas las cadenas que comienzan con b:B = {b} · {(a ∪ b)}∗Ejemplo 3. Lenguaje de todas las cadenas que contienen lacadena ba: C = {(a ∪ b)}∗ · {ba} · {(a ∪ b)}∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Propiedades de clausura
Teorema
Si L,L1 y L2 son lenguajes regulares sobre un alfabeto Σ, tambien loson:
1 L1 ∪ L2
2 L1L2
3 L+
4 L = Σ∗ − L5 L∗
6 L1 ∩ L2
7 L1 − L2
8 L14L2
ObservacionUn sublenguaje (subconjunto) de un lenguaje regular no esnecesariamente regular, es decir, la familia de los lenguajesregulares no es cerrada para subconjuntos.
Lenguajes formales Raul E Gutierrez de Pinerez R
Propiedades de clausura
ObservacionUn lenguaje regular puede contener sublenguajes No-regulares.Sea L = {anbn} es un sublenguaje del lenguaje regular a∗b∗
Todo lenguaje finito es regular y la union finita de lenguajesregulares es regular.La union infinita de lenguajes no necesariamente es regular.
L = {anbn : n ≥ 1} =⋃i≥1
{aibi}
Donde cada {aibi} regular, pero L No lo es.
Lenguajes formales Raul E Gutierrez de Pinerez R
Definicion formal de expresiones regulares
Las expresiones regulares sobre un alfabeto Σ se definenrecursivamente como:
∅, ε y a, a ∈ Σ son expresiones regulares.si A y B son expresiones regulares, tambien lo son:
A ∪B (Union)A ·B (Concatenacion)A∗(Cerradura de Kleene)
Son expresiones regulares aab∗, ab+, (aaba∗)+
Sea el conjunto {ε, aa, aba, ab2a, ab3a, ab4a, } entonces {ε} ∪ ab∗aes una expresion regular.Expresion regular de todas las cadenas impares sobre Σ = {a, b}
a(aa ∪ ab ∪ ba ∪ bb)∗ ∪ b(aa ∪ ab ∪ ba ∪ bb)∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Expresiones regulares
TeoremaSean r, s y t expresiones regulares sobre Σ, entonces:1. r ∪ s = s ∪ r2. r ∪ ∅ = r = ∅ ∪ r3. r ∪ r = r4. (r ∪ s) ∪ t = r ∪ (s ∪ t)5. rε = r = εr6. r∅ = ∅ = ∅r7. (rs)t = r(st)8. r(s ∪ t) = rs ∪ rt y (r ∪ s)t = rt ∪ st9. r∗ = r∗∗ = r∗r∗ = (ε ∪ r)∗ = r∗(r ∪ ε) = (r ∪ ε)r∗ = ε ∪ rr∗10. (r ∪ s)∗ = (r∗ ∪ s∗)∗ = (r∗s∗)∗ = (r∗s)∗r∗ = r∗(sr∗)∗
11. r(sr)∗ = (rs)∗r12. (r∗s)∗ = ε ∪ (r ∪ s)∗s13. (rs∗)∗ = ε ∪ r(r ∪ s)∗14. s(r ∪ ε)∗(r ∪ ε) ∪ s = sr∗
15. rr∗ = r∗r
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos expresiones regulares
Ejemplo 1. Muestre que si r = s∗t implica que r = sr ∪ t
r = s∗t = (ε ∪ s+)t ya que s∗ = ε ∪ s+
= (ε ∪ ss∗)t= εt ∪ s s∗t︸︷︷︸
r
= t ∪ sr= sr ∪ t
Ejemplo 2. Probar que (b ∪ aa∗b) ∪ (b ∪ aa∗b)(a ∪ ba∗b)∗(a ∪ ba∗b) ya∗b(a ∪ ba∗b)∗ son equivalentes.
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos expresiones regulares
Ejemplo 3. ¿Las siguientes expresiones regulares representan elmismo lenguaje?
(a∗b)∗ y ε ∪ (a ∪ b)∗b
Ejemplo 4. Demostrar que r(sr)∗ = (rs)∗r⇒) Sea w ∈ r(sr)∗, entoncesw = r0(s1r1)(s2r2) . . . (snrn), para n ≥ 0
w = r0(s1r1)(s2r2) . . . (snrn)
w = (r0s1)(r1s2)(r2s3) . . . (rn−1sn)rn
Por lo tanto, r(sr)∗ ⊆ (rs)∗r⇐)
Sea w ∈ (rs)∗r, entoncesw = (r0s0)(r1s1) . . . (rn−1sn−1)rn, para n ≥ 0
Lenguajes formales Raul E Gutierrez de Pinerez R
Encontrar las expresiones regulares de los siguientes lenguajes
Ejemplo 5. Σ = {a, b} Lenguaje de todas las palabras quecomienzan con b y terminan con a.
b(a ∪ b)∗a
Ejemplo 6. Σ = {a, b} Lenguaje de todas las palabras que tienenexactamente dos a’s
b∗ab∗ab∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejercicios resueltos de expresiones regulares
Ejemplo 7. Σ = {a, b} Lenguaje de todas las palabras que tienen unnumero par de sımbolos (palabras de longitud par)
(aa ∪ ab ∪ ba ∪ bb)∗
Ejemplo 8. Σ = {a, b} Lenguaje de todas las palabras que tienen unnumero impar de sımbolos (palabras de longitud impar)
a(aa ∪ ab ∪ ba ∪ bb)∗ ∪ b(aa ∪ ab ∪ ba ∪ bb)∗
Ejemplo 9. Σ = {a, b} Lenguaje de todas las palabras que tienen unnumero par de a’s.
b∗(ab∗a)∗b∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejercicios resueltos de expresiones regulares
Ejemplo 10. Sobre Σ = {0, 1} lenguaje de todas las cadenas quetienen exactamente dos ceros:
1∗01∗01∗
Ejemplo 11. Sobre Σ = {0, 1} lenguaje de todas las cadenas cuyopenultimo sımbolo, de izquierda a derecha, es un 0.
(0 ∪ 1)∗0(0 ∪ 1)
Lenguajes formales Raul E Gutierrez de Pinerez R
Expresiones regulares en la computacion
Las expresiones regulares sirven para la construccion deanalizadores lexicos.
http://regexpal.com/ es un testeador de expresionesregulares en java.
Representa palabras que comienzan por una letra mayusculaseguida de un espacio en blanco y de dos letras mayusculas.Ejemplo, reconocerıa Ithaca NY. Por ejemplo, Palo Alto CA nola reconocerıa.
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos
Son maquinas abstractas que procesan cadenas, las cuales sonaceptadas o rechazadas.
El automata posee unidad de control que inicialmente escanea olee la casilla desde el extremo izquierdo de la cinta. Tiene unosestados o configuraciones internas.
Lenguajes formales Raul E Gutierrez de Pinerez R
Funcion de transicion
Sea un automata M = (Q,Σ, q0, T, δ)
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos (FSAs: Finite State-Automata)
Los automatas finitos se dividen en automatas finitos deterministas(AFD) (es funcion) y en automatas finitos no deterministas (AFN)(esuna relacion).
Automata finito determinista
Sea M = (Q,Σ, q0, T, δ) un AFD entonces:Σ: es el alfabeto de entrada.Q: es el conjunto de estadosq0:Estado inicialT : Conjunto de estados finales.δ : Q× Σ −→ Q determina un unico estado siguiente para el parδ(qi, γ) correspondiente al estado actual y la entrada.
Un AFD puede ser representado por un grafo dirigido y etiquetado.
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos automatas finitos deterministas
Ejemplo 1. Disenar el AFD sobre Σ = {a, b} que reconozca ellenguajeL = a∗ = {ε, a, a2, a3, . . .}
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos automatas finitos deterministas
Ejemplo 2. Disenar el AFD sobre Σ = {a, b} que reconozca ellenguajeL = a+ = {a, a2, a3, . . .}
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos automatas finitos deterministas
Ejemplo 3. Disenar el AFD sobre Σ = {a, b} que reconozca ellenguaje de todas las cadenas que tienen un numero par de sımbolos
Ejemplo 4. AFD que reconoce a+b+
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos automatas finitos deterministas
Ejemplo 5. El diagrama y tabla de transicion en cierta formadeterminan si es un automata finito determinista o no determinista.Sea Σ = {a, b}, Q = {q0, q1, q2}q0 : estado inicialT = {q0, q2} estados finales o de aceptacion.
Es importante anotar que en la tabla de transicion por cada pareja(qi, γ) hay un solo estado qj por eso δ es una funcion de transicion.el lenguaje que reconoce este AFD es:
a∗(b(a+ ba+ bb)∗b) + a∗
Ahora como el estado inicial es un estado final este AFD reconoce εLenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos automatas finitos deterministas
Ejemplo 6. Disenar el AF sobre Σ = {0, 1} que reconozca en binarioel lenguaje de todos los multiplos de 2.
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos No determinısticos
Automatas finitos No determinısticos
Sea M = (Q,Σ, q0, T,4) un AFN entonces:Σ: es el alfabeto de entrada.Q: es el conjunto de estadosq0:Estado inicialT : Conjunto de estados finales.4: es una relacion tal que:
(Q× Σ)→ 2Q
Donde 2Q denota el conjunto potencia de Q o el conjunto detodos los subconjuntos de Q.
2Q = {A|A ⊆ Q}
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos Automatas finitos No determinısticos
Ejemplo 1. Disenar el AFN sobre Σ = {a, b} que reconozca ellenguaje regular a∗b ∪ ab∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos Automatas finitos No determinısticos
Ejemplo 2. Disenar el AFN sobre Σ = {a, b} que reconozca ellenguaje(ab ∪ aba)∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos Automatas finitos No determinısticos
Ejemplo 3. Disenar el AF sobre Σ = {0, 1} que reconozca ellenguaje de todas las cadenas que terminan en 01
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos Automatas finitos No determinısticos
Ejemplo 4. Obetener la expresion regular del siguiente AFN sobreΣ = {a, b}.
(a∗b∗)∗(aa ∪ bb)(a∗b∗)∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Equivalencia de AFN y AFD
Teorema
Sea M = (Q,Σ, q0, T,4) un AFN. Entonces existe un AFDM ′ = (Q′,Σ′, q′0, T
′, δ) tal que L(M) = L(M ′).El conjunto q0 se corresponde con q′0El conjunto de estados finales T ′ de Q′ se corresponde con losconjuntos de estados de Q que contienen un estado de TEl conjunto de estados de Q′ se corresponde con el conjunto deestados de Q que se vaya formando mediante el analisis de unacadena sobre M
Lenguajes formales Raul E Gutierrez de Pinerez R
Equivalencia entre automatas
Automatas equivalentes
Dos AFD son equivalentes M1 y M2 son equivalentes siL(M1) = L(M2).
Sean M1 y M2 sobre el alfabeto∑
= {a},
L(M1) = L(M2) = a∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos equivalencia de AFN y AFD
Ejemplo 1. Consideremos el AFN M que acepta a ∪ (ab)+
Para este AFN se tiene:
4(q0, a) = {q1, q2} 4(q0, b) = ∅4({q1, q2}, a) = ∅ 4({q1, q2}, b) = {q3}4(∅, b) = 4(∅, b) = ∅ 4(q3, a) = {q2}
4(q3, b) = ∅ 4(q2, a) = ∅4(q2, b) = {q3}
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos equivalencia de AFN y AFD
Entonces se verifica que la regla de transicion es una funcion. Portanto, M ′ = (Q′,Σ′, q′0, T
′, δ) donde:
Q′ = {∅, {q0}, {q2}, {q3}, {q1, q2}}Σ′ = Σ
s′ = {q0}T ′ = {{q3}, {q1, q2}}
y δ viene dada por la siguiente tabla:
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos equivalencia de AFN y AFD
Ejemplo 2. Consideremos el AFN M que acepta (0 ∪ 1)∗0(0 ∪ 1)
Caso desfavorable para la construccion de subconjuntos
Crecimiento exponencial del numero de estados para el AFD.Lenguajes formales Raul E Gutierrez de Pinerez R
Interseccion entre lenguajes regulares
Teorema
Si L1 y L2 son lenguajes regulares, tambien lo es L1 ∩ L2.
Sean L1 = L(M1) y L2 = L(M2) donde: M1 = (Q1,Σ1, q1, T1, δ1) yM2 = (Q2,Σ2, q2, T2, δ2) Entonces construimos:
M = (Q1 ×Q2,Σ1 ∪ Σ2, (q1, q2), T1 × T2, δ)
donde
δ : Q1 ×Q2 × Σ → Q1 ×Q2
δ((qi, qj), a) = (δ1(qi, a), δ2(qj , a))
Esta funcion satisface:
L(M) = L(M1) ∩ L(M2)
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplo interseccion de lenguajes
Ejemplo. Construir el AFD que acepte el lenguaje L de todas laspalabras sobre Σ = {a, b} que tienen un numero par de a’s y unnumero par de b’s.
Entonces el lenguaje L(M) = L(M1) ∩ L(M2) tiene cuatro estados:Q1 ×Q2 = {(q1, q2), (q1, q4), (q3, q2), (q3, q2)}T1 × T2 = {(q1, q2)}
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplo interseccion de lenguajes
Entonces δ se define como:
δ((q1, q2), a) = (δ1(q1, a), δ2(q2, a)) = (q3, q2)
δ((q1, q2), b) = (δ1(q1, b), δ2(q2, b)) = (q1, q4)
δ((q1, q4), a) = (δ1(q1, a), δ2(q4, a)) = (q3, q4)
δ((q1, q4), b) = (δ1(q1, b), δ2(q4, b)) = (q1, q2)
δ((q3, q2), a) = (δ1(q3, a), δ2(q2, a)) = (q1, q2)
δ((q3, q2), b) = (δ1(q3, b), δ2(q2, b)) = (q3, q4)
δ((q3, q4), a) = (δ1(q3, a), δ2(q4, a)) = (q1, q4)
δ((q3, q4), b) = (δ1(q3, b), δ2(q4, b)) = (q3, q2)
Lenguajes formales Raul E Gutierrez de Pinerez R
Toerema de Kleene
Automatas con ε-transiciones
Automatas con ε-transiciones: Un automata conε-transiciones es un AFN M = (Q,Σ, q0, T,4) en el que la relacionde transicion esta definida ası:4 : Q× (Σ ∪ ε) −→ 2Q
La ε-transicion permite al automata cambiar internamente de estadosin consumir el sımbolo leıdo sobre la cinta.Donde 2Q denota el conjunto potencia de Q o el conjunto de todoslos subconjuntos de Q.
2Q = {A|A ⊆ Q}
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos
Ejemplo 1. Se puede representar el lenguaje de la expresion regulara∗ sin necesidad de colocar el estado inicial como estado final.
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos
Ejemplo 2. Sea el siguiente AFN-ε
La ε-transicion en el AFN permite que se reconozcan cadenas como:w=aaabw=abbbbaaaw=aw=b
Expresion regular del automta
a∗b ∪ ab∗a∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos
Ejemplo 3. Construir un AFN-ε que reconozca sobre Σ = {a, b, c}, ellenguaje L = a∗b∗c∗
El siguiente AFN reconoce el mismo lenguaje que reconoce el AFN-εanterior.
Lenguajes formales Raul E Gutierrez de Pinerez R
Teorema de Kleene
Teorema
Teorema de Kleene. Un lenguaje regular si y solo si es aceptadopor un automata finito (AFD o AFN o AFN-ε)
Construccion de automatas finitos a partir de expresionesregulares.Construccion de expresiones regulares a partir de automatas:
1 Lema de Arden (Ecuaciones de Lenguaje)2 Conversion de AFN a expresiones regulares por eliminacion de
estados.
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos y lenguajes regulares
Teorema
Dado un AFN-ε M = (Q,Σ, q0, T,4), se puede construir un AFN M ′
equivalente a M , es decir L(M) = L(M ′).
Teorema
Un lenguaje regular si y solo si es aceptado por un automata finito(AFD o AFN o AFN-ε)
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos y lenguajes regulares
Teorema
Para toda expresion regular R se puede construir un AFN-ε M talque L(R) = L(M).
Paso Basico
EL automata
acepta el lenguaje vacıo ∅
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos y lenguajes regulares
EL automata
acepta el lenguaje {ε}EL automata
acepta el lenguaje {a}
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos y lenguajes regulares
PASO INDUCTIVO1. Existe un automata que acepta R ∪ S
Sean M1 = (Q1,Σ1, s1, T1,41) y M2 = (Q2,Σ2, s2, T2,42) para elnuevo M = (Q,Σ, s, T,4) tenemos que:
1 Σ = Σ1 ∪ Σ2
2 En T se agrega un estado s′ si y solo si
4 = 41 ∪42 ∪ {(s, ε, s1), (s, ε, s2)} ∪{(T1, ε, s′), (T2, ε, s′)}
s′ es un estado final NUEVO.3 Q = Q1 ∪Q2 ∪ {s} ∪ {s′} donde s es el nuevo estado inicial.
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos y lenguajes regulares
Por ejemplo se construye ab ∪ ba.
Ejemplo. Sobre Σ = {a, b} el lenguaje de todas las palabras sobre Σque tienen un n
Lenguajes formales Raul E Gutierrez de Pinerez R
Automatas finitos y lenguajes regulares
2. Automata que acepta R · S
Sean M1 = (Q1,Σ1, s1, T1,41) y M2 = (Q2,Σ2, s2, T2,42) para elnuevo AFN M = (Q,Σ, s, T,4) que acepta L(M1) · L(M2) tenemosque:
1 Q = Q1 ∪Q2
2 s1 = s
3 T = T24 = 41 ∪42 ∪ (T1 × {ε} × s2)
Lenguajes formales Raul E Gutierrez de Pinerez R
3. Automata que reconoce R∗
Sean M1 = (Q1,Σ1, s1, T1,41) entonces el nuevo AFNM = (Q,Σ, s, T,4) que acepta L(M) = (L(M1))∗ viene dado por
1 Q = Q1 ∪ {s} ∪ {s′}, donde s′ es un nuevo estado final.2 T = {s′}3 4 = 41 ∪ {(s, ε, s1), (s, ε, s′)} ∪ (T1 × {ε} × s′) ∪ (T1 × {ε} × s1)
Lenguajes formales Raul E Gutierrez de Pinerez R
Ecuaciones de lenguaje
Ecuacion del lenguaje
Sea Σ un alfabeto y sean E y A subconjuntos de Σ∗, entonces laecuacion del lenguaje X = E ∪A ·X admite la solicion X = A∗ · Ecualquier otra solucion Y debera contener A ·X, ademas ε /∈ A,X = A∗ · E es la unica solucion.
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos ecuaciones de lenguaje
Ejemplo 1. Encontrar la expresion del siguiente AFD.
Entones el sistema de ecuaciones a resolver:
x0 = ax1
x1 = ax2 + bx4
x2 = ax3 + bx4
x3 = ax3 + bx4 + ε
x4 = bx4 + ε
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos ecuaciones de lenguaje
Ejemplo 2. Encontrar la expresion regular del siguiente AFD usandoel lema del Arden:
El siguiente es el sistema de ecuaciones a resolver:
x0 = ax0 + bx1 + ε
x1 = ax1 + bx2
x2 = (a ∪ b)x1 + ε
Lenguajes formales Raul E Gutierrez de Pinerez R
Ecuaciones de lenguaje
TeoremaSean n ≥ 2 considere el sistema de ecuaciones cuyas incognitasx1, x2, . . . , xn dado por:
x1 = E1 ∪A11x1 ∪A12x2 ∪ . . . ∪A1,nxn
x2 = E2 ∪A21x1 ∪A22x2 ∪ . . . ∪A2,nxn...
xn−1 = En−1 ∪A(n−1)1x1 ∪ . . . ∪A(n−1),nxn
xn = En ∪An1x1 ∪An2x2 ∪ . . . ∪An,nxn
Entonces el sistema tiene una unica solucion:En ∀i, j ∈ {1, . . . , n}, ε /∈ Ai
Lenguajes formales Raul E Gutierrez de Pinerez R
Ecuaciones de lenguaje
Entonces el nuevo sistema se obtiene hasta n− 1:
x1 = E1 ∪ A11x1 ∪ A12x2 ∪ . . . ∪ A1,(n−1)xn−1
x2 = E2 ∪ A21x1 ∪ A22x2 ∪ . . . ∪ A2,(n−1)xn−1
...xn−1 = En−1 ∪ A(n−1)1x1 ∪ . . . ∪ A(n−1),(n−1)xn−1
Entonces Ei y Aij se definen como:
Ei = Ei ∪ (AinA∗nnEn), i = 1, . . . , n− 1
Aij = Aij ∪ (AinA∗nnAnj), ∀i,j = 1, . . . , n− 1
Donde:
Ei =
{∅ si qi /∈ Fε si qi ∈ F
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplo ecuaciones de lenguaje
Ejemplo 1. Obtener la expresion regular del siguiente AFD usandoecuaciones del lenguaje y la solucion unica.
El sistema de ecuaciones inicial es:
x1 = ax1 + bx2
x2 = bx1 + ax2 + ε
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplo ecuaciones de lenguaje
Se aplica el teorema de solucion de ecuaciones:
x1 = E1 + A11x1
Se obtiene E1
E1 = E1 + (A12A∗22E2)
E1 = ∅+ (b · a∗ · ε)E1 = ba∗
Se obtiene A11
A11 = A11 + (A12A∗22A21)
A11 = a+ (b · a∗ · b)A11 = a+ ba∗b
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplo ecuaciones de lenguaje
Reemplazando E1 y A11 en x1
x1 = E1 + A11x1
x1 = ba∗ + (a+ ba∗b)x1
Aplicando solucion unica se tiene:
x1 = (a+ ba∗b)∗ba∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Sistema de ecuaciones por reduccion de variables
x1 = E1 ∪ A11x1 ∪ A12x2 ∪ A13x3
x2 = E2 ∪ A21x1 ∪ A22x2 ∪ A23x3
x3 = E3 ∪ A31x1 ∪ A32x2 ∪ A33x3
Lenguajes formales Raul E Gutierrez de Pinerez R
LENGUAJES Y GRAMATICAS
Segun Chomsky los tipos de gramaticas se clasifican ası:
Lenguajes formales Raul E Gutierrez de Pinerez R
Gramaticas
Gramaticas Regulares (Tipo 3)
Una gramatica regular G es una 4-tupla G = (N,Σ, S, P ) queconsiste de un conjunto N de no terminales, un alfabeto Σ, unsımbolo inicial S y de un conjunto de producciones P . Las reglas sonde la forma A→ w, donde A ∈ N y w es una cadena sobre Σ ∪Nque satisface lo siguiente:
1 w contiene un no terminal como maximo.
2 Si w contiene un no terminal, entonces es el sımbolo que esta en elextremo derecho de w.
3 El conjunto de reglas P se define ası:
P ⊆ N × Σ∗(N ∪ ε) o P ⊆ N × (N ∪ ε)Σ∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Definicion de gramatica regular por la derecha
Gramaticas regulares
SobreG = (N,Σ, S, P )
Una gramatica es regular por la derecha si sus producciones son dela forma: {
A −→ wB, w ∈∑∗
, B ∈ NA −→ ε
Ejemplo Considere la siguiente gramatica regular G = (N,Σ, S, P ),que genera a∗, donde Σ={a,b}, N={S,A }P : S → aA | εA→ aAEjemplo. Sea la siguiente gramatica regular G = (N,Σ, S, P ) quegenera el lenguaje de la expresion regular (a ∪ b)∗Σ={a,b}N={S,A }P : S −→ aS | bS | ε
Lenguajes formales Raul E Gutierrez de Pinerez R
Gramaticas regulares
Ejemplo Considere la siguiente gramatica regular G = (N,Σ, S, P ),que genera (a ∪ b)+, donde Σ={a,b}, N={S,A }P : S → aS | bS | a | bEjemplo Considere la siguiente gramatica regular G = (N,Σ, S, P ),que genera a+b+, donde Σ={a,b}, N={S,A }P : S → aS | aAA→ bA | bEjemplo Considere la siguiente gramatica regular G = (N,Σ, S, P ),que genera a∗b∗, donde Σ={a,b}, N={S,A }P : S → aS | bA | εA→ bA | ε
Lenguajes formales Raul E Gutierrez de Pinerez R
Gramaticas independientes del contexto
Gramaticas tipo 2
Una gramatica independiente del contexto G = (N,Σ, S, P ) consistede un conjunto N de no terminales, un alfabeto Σ, un sımbolo inicialS y de un conjunto de producciones P .
Definicion
Sea G = (N,Σ, S, P ) una gramatica independiente del contexto. Ellenguaje generado por G (o el lenguaje de G) denotado por L(G), esel conjunto de todas las cadenas de terminales que se derivan delestado inicial S. en otras palabras:
L(G) = {w ∈ Σ∗/S ⇒∗ w}
P ⊆ N × (N ∪ Σ)∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplo de gramatica tipo 2
Sea G = (N,Σ, S, P ) una gramatica con Σ = {0, 1} el conjuntoN = {S} y P el conjunto de producciones:
S −→ 0S1
S −→ ε
Ejemplo. Una GIC que genera el lenguaje de los palındromes sobreΣ = {a, b}
S −→ aSa | bSb | a | b | ε
Ejemplo. Una GIC que genera el siguiente lenguaje sobre Σ = {a, b}Sea
L = {anbm|n ≤ m ≤ 2n}
S −→ aSb | aSbb | ε
Lenguajes formales Raul E Gutierrez de Pinerez R
GICs especiales
1 El lenguaje de todas las cadenas de parentesis anidados yequilibrados, por ejemplo:(())(()), entonces la gramatica serıa:
S −→ (S)S | ε
2 Sea T = {0, 1, (, ),+, ∗, ∅, ε}. T es el conjunto de sımbolos usadospara definir el lenguaje de las expresiones regulares sobreΣ = {0, 1}. Se puede disenar un GIC que genere las expresionesregulares.
S −→ S + S | SS | S∗ | (S) | 0 | 1 | ∅ | ε
Lenguajes formales Raul E Gutierrez de Pinerez R
Gramaticas no restringidas
Sea una 4-tupla G = (N,Σ, S, P ) que consiste de un conjunto N deno terminales, un alfabeto Σ, un sımbolo inicial S y de un conjunto deproducciones P .
N es el alfabeto de sımbolos no terminales
Σ al alfabeto tal que N ∩ Σ = ∅
S ∈ N es el sımbolo inicial
P es el conjunto de reglas de producciones de la forma α→ β,donde α ∈ (N ∪ Σ)+ y β ∈ (N ∪ Σ)∗, es decir
P ⊂ (N ∪ Σ)+ × (N ∪ Σ)∗
Lenguajes formales Raul E Gutierrez de Pinerez R
Gramaticas no restringidas (Gramaticas de tipo 0 y 1)
Ejemplo Sea G = (N,Σ, S, P ) una gramatica con Σ = {0, 1, 2} elconjunto N = {S,A,B} y P el conjunto de producciones:
El lenguaje que genera esta gramatica dependiente del contexto es:
L(G) = {0n1n2n/n = 0, 1, 2, .....}
Sea w=001122 una cadena que puede ser reconocida por lagramatica y que ademas pertenece al lenguaje.
Lenguajes formales Raul E Gutierrez de Pinerez R
Tipos de gramaticas
la familia de los lenguajes de tipo i contiene a la familia de tipo i+ 1.
GR ⊆ GIC ⊆ GDC ⊆ GEF
Lenguajes formales Raul E Gutierrez de Pinerez R
Arboles de derivacion
Ambiguedad
Una gramatica se dice que es ambigua si hay dos o mas arboles dederivacion distintos para la misma cadena. una gramatica en la cual,para toda cadena w, todas las derivaciones de w tienen el mismoarbol de derivacion, es no ambigua.
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos arboles de derivacion
Ejemplo 2. Consideremos la siguiente gramatica:S −→ SbS | ScS | ay se la cadena w = abaca y sus derivaciones:
S ⇒ SbS ⇒ SbScS ⇒ SbSca⇒ abaca
S ⇒ ScS ⇒ SbScS ⇒ abScS ⇒ abacS ⇒ abaca
Lenguajes formales Raul E Gutierrez de Pinerez R
La forma de Backus-Naur
Forma de Backus-NaurLa forma de Backus-Naur se emplea para especificar reglassintacticas de muchos lenguajes de programacion y de lenguajenatural: En lugar de utilizar el sımbolo −→ usamos ::= y colocamoslos sımbolos no terminales entre <>.
La forma BNF se usa frecuentemente para especificar la sintaxis delenguajes de programacion, como Java y LISP; lenguajes de basesde datos, como SQL, y lenguajes de marcado como XML.
Lenguajes formales Raul E Gutierrez de Pinerez R
La forma de Backus-Naur
Ejemplo 1. sea la siguiente GIC:O −→ SN SVSN −→ articulo sustantivoSV −→ verbo sustantivoarticulo −→ elverbo −→ comesustantivo −→ perro | salchichaLa forma Backus-Naur es:< O >::=< SN >< SV >< SN >::=< articulo >< sustantivo >< SV >::=< verbo >< sustantivo >< articulo >::= el< verbo >::= come< sustantivo >::= perro | salchicha
Lenguajes formales Raul E Gutierrez de Pinerez R
La forma de Backus-Naur
Ejemplo 2. Sea la siguiente gramatica:A −→ Aa | a | ABLa forma Backus-Naur es:< A >::=< A > a | a |< A >< B >Ejemplo 3. La produccion de enteros son signo en notacion decimal.(Un entero con signo es un natural precedido por un signo mas o unsigno menos). La forma Backus-Naur para la gramatica que producelos enteros con signo es:< entero con signo >::=<signo><entero><signo >::= + | −< entero >::=< dıgito>|< dıgito >< entero>< dıgito > ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Lenguajes formales Raul E Gutierrez de Pinerez R