Sie sind auf Seite 1von 9

1 Elementos del Lenguaje

1.1 Introducción

Símbolo (σ): unidad básica del lenguaje.

Alfabeto (Σ): conjunto de símbolos de un lenguaje.

Palabra (ω): combinación finita de símbolos.

Palabra vacía (ξ): palabra de largo cero sin símbolos del alfabeto.

Σ*=Uk≥0 Σk

Σ+= Uk≥1 Σk

1.2 Lenguaje

*
L = { ω ∈ Σ / ω satisface alguna propiedad}
1.2.1 Operaciones sobre Lenguajes
Dado L1 y L2
1. Unión
‫ܮ‬ଵ ‫ܮ ڂ‬ଶ = {ω / ω ߱ ∈ ‫ܮ‬ଵ ‫ܮ ∈ ߱ ݋‬ଶ }
2. Intersección
‫ܮ‬ଵ ∩ ‫ܮ‬ଶ = {ω / ω ߱ ∈ ‫ܮ‬ଵ ‫ܮ ∈ ߱ ݕ‬ଶ }
3. Concatenación
‫ܮ‬ଵ //‫ܮ‬ଶ = {ω / ω=uv, con u ∈ ‫ܮ‬ଵ ‫ܮ ∈ ݒ ݕ‬ଶ }
4. Clausura (Estrella de Kleen)
Dado ‫ ∈ ܮ‬Σ
‫{ = ∗ܮ‬ω / ω1 ω2 …ωk, algún k≥0 con ω1 ,ω2…. ,ωk ∈ ‫}ܮ‬
Lenguajes Formales y Autómatas Claudio Henríquez

2 Lenguajes Regulares

2.1 Expresiones Regulares


Kleene introdujo en 1956 [Kleene56] el concepto de expresión regular para expresar el
conjunto de palabras aceptadas por los autómatas finitos.
Una expresión regular es una expresión con la que podemos generalizar las reglas de
producción para un conjunto de palabras.
2.1.1 Definición Formal
Dados: un alfabeto Σ y la siguiente notación (previamente definida):
o Conjunto vacío: ø
o Palabra vacía: ξ
o Unión de lenguajes: +
o Concatenación de lenguajes y palabras: ·.
o Cierre o clausura de lenguajes: *.
Se define
o Ø ∈ ER
o ξ ∈ ER
o ∀ a ∈ Σ, a ∈ ER
o α+β, α.β ∈ ER ∀ α, β ∈ ER
o α* ∈ ER ∀ α* ∈ ER
o Sólo son expresiones regulares las que se obtienen por aplicación, un
número finito de veces, de las reglas anteriores.

2.1.2 Ejemplos
1. Encuentre una expresión regular (ER) bajo el alfabeto {0,1}, para el conjunto de
palabras que puede tener cualquier combinación de ceros y unos.
ER1: (0+1)*
2. Encuentre una expresión regular (ER) bajo el alfabeto {0,1}, para el conjunto de
palabras que empiezan con uno.
ER2: 1·(0+1)*
3. Encuentre una expresión regular (ER) bajo el alfabeto {0,1}, para el conjunto de
palabras que empiezan con uno y terminan con uno.
ER3: 1·(0+1)*·1
4. Encuentre una expresión regular (ER) bajo el alfabeto {0,1}, para el conjunto de
palabras de largo par.
ER4: (00+01+10+11)*
Lenguajes Formales y Autómatas Claudio Henríquez

5. Encuentre una expresión regular (ER) bajo el alfabeto {a, b, c}, para el conjunto de
palabras que empiezan con c y terminan con a o b.
ER5: c·(a+b+c)*·(a+b)

2.2 Autómatas Finitos (AF)


2.2.1 Definición Formal
Un autómata finito se puede definir como una quíntupla (Q, Σ, δ, q0, F), donde:
o Q es un conjunto finito no vacío de estados.
o Σ es el alfabeto de entrada.
o δ: Q×ΣQ es la función de transición que, a cada pareja de estados y símbolos de
entrada (q, a), le asigna un nuevo estado q’=δ(q, a).
o q0∈Q es el estado inicial del autómata.
o F⊆ Q es el conjunto de estados finales del autómata.

2.2.2 Ejemplos
1. Encuentre un AFD bajo el alfabeto {0,1}, para el conjunto de palabras que puede
tener cualquier combinación de ceros y unos.
ER1: (0+1)*
0,1

A
2. Encuentre un AFD bajo el alfabeto {0,1}, para el conjunto de palabras que
empiezan con uno.
ER2: 1· (0+1)*

0,1 0,1
C
0
A 1 B

3. Encuentre un AFD bajo el alfabeto {0,1}, para el conjunto de palabras que


contienen cantidad par de unos y cantidad par de ceros.

A 0 B
0
1 1 1 1
0
C 0 D
Lenguajes Formales y Autómatas Claudio Henríquez

2.2.3 Ejercicios
1. Encuentre un AFD bajo el alfabeto {0,1}, para el conjunto de palabras que
empiezan con uno y terminan con uno.
ER1: 1·(0+1)*·1
2. Encuentre un AFD bajo el alfabeto {0,1}, para el conjunto de palabras de largo par.
ER2: (00+01+10+11)*

2.2.4 AFD)
Método de Thompson (AFND-ξ

ξ: q0 ξ qf

σ
σ: q0 qf

ξ r0 rf ξ
rUs: q0 qf
ξ s0 sf ξ

rs: r0 rf sf
S

ξ ξ
r*: q0 r0 rf qf
S

ξ
Lenguajes Formales y Autómatas Claudio Henríquez

1. Dada la expresión regular ER:(11+0+1)*, utilice el método de Thompson para encontrar


su AFD correspondiente.

AFND-ξ
ξ

2 0 3
ξ ξ

ξ ξ ξ ξ
0 1 4 1 5 1 6 9 10

ξ ξ

7 1
8
ξ
Aplicando Clausura
C-ξ({0})={0,1,2,4,7,10}:A
C-ξ(δ(A,0))=C-ξ({3})={1,2,3,4,7,9,10}:B
C-ξ(δ(A,1))=C-ξ({5,8})={1,2,4,5,7,8,9,10}:C
C-ξ(δ(B,0))=C-ξ({3}):B
C-ξ(δ(B,1))=C-ξ({5,8}):C
C-ξ(δ(C,0))=C-ξ({3}):B
C-ξ(δ(C,1))=C-ξ({5,6,8})={1,2,4,5,6,7,8,9,10}:D
C-ξ(δ(D,0))=C-ξ({3}):B
C-ξ(δ(D,1))=C-ξ({5,6,8}):D
AFD
Δ 0 1 0
A B C
B B C 0 B 0
C B D
D B D A 0 1 D 1

1 C 1
AFD Mínimo
P0=[A B C D]
P1=[A B C D]
A≈B≈C≈D
Δ 0 1 0,1
A A A

A
Lenguajes Formales y Autómatas Claudio Henríquez

2. Dada la expresión regular ER:(11+0+1)+, utilice el método de Thompson para encontrar


su AFD correspondiente.

AFND-ξ
ξ
0 0
1 2 10 11

ξ ξ ξ ξ

ξ ξ ξ ξ 1 1 ξ ξ
0 3 1 4 1 5 8 9 12 13 14 17 18

ξ ξ
ξ ξ
6 1 7 15
1 16
ξ
Aplicando Clausura
C-ξ({0})={0,1,3,6}:A
C-ξ(δ(A,0))=C-ξ({2})={2,8,9,10,12,15,18}:B
C-ξ(δ(A,1))=C-ξ({4,7})={4,7,8,9,10,12,15,18}:C
C-ξ(δ(B,0))=C-ξ({11})={9,10,11,12,15,17,18}:D
C-ξ(δ(B,1))=C-ξ({13,16})={9,10,12,13,15,16,17,18}:E
C-ξ(δ(C,0))=C-ξ({11}):D
C-ξ(δ(C,1))=C-ξ({5,13,16})={5,8,9,10,12,13,15,16,17,18}:F
C-ξ(δ(D,0))=C-ξ({11}):D
C-ξ(δ(D,1))=C-ξ({13,16}):E
C-ξ(δ(E,0))=C-ξ({11}):D
C-ξ(δ(E,1))=C-ξ({13,14,16})={9,10,12,13,14,16,17,18}:G
C-ξ(δ(F,0))=C-ξ({11}):D
C-ξ(δ(F,1))=C-ξ({13,14,16}):G
C-ξ(δ(G,0))=C-ξ({11}):D
C-ξ(δ(G,1))=C-ξ({13,14,16}):G
AFD
δ 0 1
A B C
B D E
C D F
D D E
E D G
F D G
G D G
Lenguajes Formales y Autómatas Claudio Henríquez

AFD Mínimo
P0=[A][ B C D E F G]
P1=[A][ B C D E F G]
B≈C≈D≈E≈F≈G
δ 0 1
A B B
B B B

3. Dada la expresión regular ER: (a+b)*abb, utilice el método de Thompson para


encontrar su AFD correspondiente.

AFND-ξ
a
ε
2 3 ε

ε ε a b b
0 1 ε 6 7 8 9 10

ε ε
4 b 5

Aplicando Clausura
c-ε(0) = {0,1,2,4,7}:A
c-ε(δ(A,a))= c-ε({3,8})={1,2,3,4,6,7,8}:B
c-ε(δ(A,b))= c-ε({5})={1,2,4,5,6,7}:C
c-ε(δ(B,a))= c-ε({3,8}):B
c-ε(δ(B,b))= c-ε({5,9})={1,2,4,5,6,7,9}:D
c-ε(δ(C,a))= c-ε({3,8}):B
c-ε(δ(C,b))= c-ε({5}):C
c-ε(δ(D,a))= c-ε({3,8}):B
c-ε(δ(D,b))= c-ε({5,10})={1,2,4,5,6,7,10}:E
c-ε(δ(E,a))= c-ε({3,8}):B
c-ε(δ(E,b))= c-ε({5}):C

AFD
δ A B
A B C
B B D
C B C
D B E
E B C
Lenguajes Formales y Autómatas Claudio Henríquez

AFD Mínimo
P1=[A B C D] [E]
P2=[A B C] [D] [E]
P3=[A C] [B] [D] [E]
P4=[A C] [B] [D] [E]
A≈C

δ A B
A B A
B B D
D B E
E B A

2.2.5 Ejercicios
Dadas las expresiones regulares (ER) siguientes, utilice el método de Thompson para
encontrar su AFD correspondiente.
1. 1(0+1)*0
2. 01*+1
3. a(a+ba)*
4. (a+b)*a(a+b)(a+b)

2.3 Grámaticas Formales


Una gramática es una cuádrupla G=(N,T,P,S), donde:
• T es el alfabeto de símbolos terminales.
• N es el alfabeto de símbolos no terminales.
Y se cumple que T∩N=ø, es decir, estos dos alfabetos no comparten ningún símbolo.
• S∈ N es el Símbolo inicial.
• P es un conjunto finito de reglas de producción.

Es decir, en la parte izquierda puede haber una cadena de símbolos con al menos un no
terminal, a la derecha puede haber una cadena de símbolos que puede ser vacía.

2.3.1 Ejemplos
1. Genere una gramática bajo el alfabeto {0,1}, para el conjunto de palabras que
empiezan con uno y terminan con uno.
G1= ({S},{0,1},P1,S)
P 1= {S1A1
A0A|1A|ξ}
Lenguajes Formales y Autómatas Claudio Henríquez

2. Genere una gramática bajo el alfabeto {0,1}, para el conjunto de palabras de largo
par.
G2= ({S},{0,1},P2,S)
P1={S00S|01S|10S|11S|ξ}

2.3.2 Ejercicios
1. Genere una gramática bajo el alfabeto {0,1}, para el conjunto de palabras que
puede tener cualquier combinación de ceros y unos.
2. Genere una gramática bajo el alfabeto {0,1}, para el conjunto de palabras que
empiezan con uno.
3. Genere una gramática bajo el alfabeto {0,1}, para el conjunto de palabras que
empiezan con uno y terminan con uno.
4. Genere una gramática bajo el alfabeto {0,1}, para el conjunto de palabras de largo
par.
5. Genere una gramática bajo el alfabeto {a, b, c}, para el conjunto de palabras que
empiezan con c y terminan con a o b.

Das könnte Ihnen auch gefallen