Raul E Gutierrez de Pi´ nerez R.˜ · Lenguajes formales y automatas´ Raul E Gutierrez de Pi´...

103
Lenguajes formales y aut ´ omatas Ra´ ul E Gutierrez de Pi˜ nerez R. [email protected] Ra ´ ul E Gutierrez de Pi ˜ nerez R Marzo, 2014 Lenguajes formales Ra´ ul E Gutierrez de Pi˜ nerez R

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

Introduccion a los automatas finitos

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

Lenguaje aceptado por un automata

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