Está en la página 1de 26

Lenguajes formales y autmatas

Lenguajes formales y autmatas

Clase 8: Lenguajes y gramticas regulares


Dra. Adriana Menchaca Mndez
ENES Unidad Morelia, UNAM

Agosto 2016

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Gramtica
Conjunto de reglas para formar correctamente las frases de un
lenguaje.
Ejemplos:

Gramtica del espaol,

Gramtica del ingls, etc.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

La formalizacin de la nocin de gramtica es debida a


Noam Chomsky y est basada en las llamadas reglas
gramaticales.

N. Chomsky, Aspects of the Theory of Syntax, Cambridge,


MIT Press, 1965.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Una regla es una expresin de la forma .

y son cadenas de smbolos en donde pueden aparecer


tanto elementos del alfabeto , como variables
(regularmente escritas con maysculas).

Ejemplo: Dada la regla X aX y la cadena de smbolos bbXa,


obtenemos la cadena bbaXa.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Gramticas regulares

Las reglas de una gramtica regular son de la forma


A aB o bien A a.

Donde A y B son variables, y a es un caracter terminal.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Gramticas regulares

Las reglas de una gramtica regular son de la forma


A aB o bien A a.

Donde A y B son variables, y a es un caracter terminal.

Las gramticas regulares permiten representar lenguajes


regulares.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares


Gramticas regulares
Una gramtica regular es un cudrupulo (V , , R, S) donde:

V es un alfabeto de variables.

es un alfabeto de constantes.

R es un conjunto de reglas, donde R V (V ).

S es el smbolo inicial y S V

Usualmente las reglas no se escriben como pares


ordenados, sino como A aB.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

La aplicacin de una gramtica se formaliza con las siguientes


nociones:

Una cadena uVu deriva en un paso una cadena uu,


denotado por uVu uu, si hay una regla en la gramtica
de la forma V .

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Una palabra w es derivable a partir de una gramtica

G si y slo s S w , donde denota la cerradura


reflexiva y transitiva de .

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Una palabra w es derivable a partir de una gramtica

G si y slo s S w , donde denota la cerradura


reflexiva y transitiva de .

Una cadena w es derivable a partir de G si existe una


derivacin tal que S 1 2 w.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Una palabra w es derivable a partir de una gramtica

G si y slo s S w , donde denota la cerradura


reflexiva y transitiva de .

Una cadena w es derivable a partir de G si existe una


derivacin tal que S 1 2 w.

El lenguaje generado por una gramtica G, L(G), es igual al


conjunto de las palabras derivables a partir de su smbolo
inicial S!

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Un ejemplo de gramtica regular es la siguiente:


G = (V , , R, S), donde:

V = {S, A, B}
= {a, b}
R est conformado por las siguientes reglas:
1.
2.
3.
4.
5.
6.
7.

S aA
S bA
A aB
A bB
Aa
B aA
B bA

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Un ejemplo de gramtica regular es la siguiente:


G = (V , , R, S), donde:

V = {S, A, B}
= {a, b}
R est conformado por las siguientes reglas:
1.
2.
3.
4.
5.
6.
7.

S aA
S bA
A aB
A bB
Aa
B aA
B bA

La palabra bababa pertenece a L(G)?

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Ejercicio: Proponer una gramtica regular que genere el


lenguaje de las palabras en {a, b} que contienen la subcadena
bb.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Ejercicio: Proponer una gramtica regular que genere el


lenguaje de las palabras en {a, b} que contienen la subcadena
bb.

Se sugiere utilizar las variables de una gramtica regular


de igual forma que los estados de un autmata.

Representan situaciones especficas.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Solucin: V est formado por las siguientes variables.

A: Variable que recuerda que el smbolo anterior no es


una b.

B: Variable que recuerda que el smbolo anterior es una b.

C: Variable que recuerda que ya apareci la subcadena


bb.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Solucin: R est formado por las siguientes reglas.


1. A aA

4. B bC

2. A bB

5. C aC

3. B aA

6. C bC

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Solucin: R est formado por las siguientes reglas.


1. A aA

4. B bC

2. A bB

5. C aC

3. B aA

6. C bC
Est completo el conjunto de reglas?

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Solucin: R est formado por las siguientes reglas.


1.
2.
3.
4.
5.

A aA
A bB
B aA
B bC
C aC

6. C bC
7. C a
8. C b
9. B b

Lenguajes formales y autmatas

Lenguajes y gramticas regulares


Autmatas finitos y gramaticas regulares

La clase de los lenguajes formados por una gramtica


regular es exactamente la de los lenguajes regulares.
Cmo lo podemos demostrar?

1. Proponer un algoritmo que dada una gramtica regular,


construya un autmata finito.
2. Proponer un algoritmo que dado un autmata finito, se
construya una gramtica regular.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Conversin de una gramtica regular a un autmata finito


1. Asociar las reglas de la gramtica con las transiciones de
un autmata, donde las variables de la gramtica se
pueden ver como los estados del autmata.

Ejemplo: La regla A bC representa en el autmata la


transicin (A, b) = C.

Para el caso A b, se agrega un nuevo estado Z y se


genera la transicin (A, b) = Z . Z es el nico estado
terminal de autmata.

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Conversin de una gramtica regular a un autmata finito


Ejercicio: Obtener un autmata finito a partir de la siguiente
gramtica regular:
1.
2.
3.
4.

S aA
S bA
A aB
A bB

5. A a
6. B aA
7. B bA

Lenguajes formales y autmatas

Lenguajes y gramticas regulares


Conversin de una gramtica regular a un autmata finito
Solucin:
a
a

a
inicio
S

B
b

Lenguajes formales y autmatas

Lenguajes y gramticas regulares


Conversin de un autmata finito a una gramtica regular
1. Asociar las transiciones del autmata con las reglas de la
gramtica, donde los estados del autmata se pueden ver
como las variables de la gramtica.

Para cada transicin de la forma (qi , a) = qj , habr en la


gramtica una reglar Qi aQj .

En caso de que qj F , es decir sea un estado final, se debe


agregar tambin la regla Qi a.

Una gramtica regular no puede generar la palabra vaca!

Lenguajes formales y autmatas

Lenguajes y gramticas regulares

Conversin de una gramtica regular a un autmata finito


Ejercicio: Obtener una gramtica regular a partir del siguiente
autmata finito:
a,b

b
inicio

b
q0

q1
a
b

q2

q3

Lenguajes formales y autmatas

Lenguajes y gramticas regulares


Conversin de una gramtica regular a un autmata finito
Solucin:
1.
2.
3.
4.
5.
6.
7.

Q0
Q0
Q0
Q0
Q1
Q1
Q1

aQ1
a
bQ0
b
bQ0
b
aQ2

8. Q1 a
9. Q2 bQ0
10. Q2 b
11. Q2 aQ3
12. Q3 aQ3
13. Q3 bQ3