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
Mucho más que documentos.
Descubra todo lo que Scribd tiene para ofrecer, incluyendo libros y audiolibros de importantes editoriales.
Cancele en cualquier momento.