Documente Academic
Documente Profesional
Documente Cultură
FACULTAD DE INGENEIRA
INGENIERIA EN CIENCIAS Y SISTEMAS
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
Este método es el método más utilizado actualmente porque tiene la gran ventaja
que da como resultado un DFA mínimo. Para su ejecución se construye un árbol.
Se explicara el método mediante un ejemplo utilizando la expresión regular
siguiente:
(a|b)* abb
(a|b)*abb#
---------------------------------------------------------------------------------------------------------------------------------- 2
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------- 3
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------- 4
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
Por ejemplo, si viene una ‘a’ sabemos que siempre viene una a y por
consiguiente no existe ninguna posibilidad de que no venga nada, pues,
viene la ‘a’. Esto significa que para ese nodo la función debe retornar
falso. En caso contrario, si el nodo es ε (Epsilon) esto significa que no
viene nada, y entonces la función retornara verdadero.
Para aplicar las funciones se necesita identificar que valores deben retornar
dependiendo del tipo de nodo que se tenga. La siguiente tabla indica los
valores de las funciones para cada nodo.
---------------------------------------------------------------------------------------------------------------------------------- 5
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
φ φ
Verdadero
---------------------------------------------------------------------------------------------------------------------------------- 6
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
Verdadero PrimeraPos(c1)
---------------------------------------------------------------------------------------------------------------------------------- 7
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
5. Aplicar a cada nodo del árbol las reglas definidas en la tabla anterior.
a. Nodos i
Para todas los nodos i Anulable es falso, primera y última posiciones es
igual a i.
Se coloca primera posición al lado izquierdo, ultima posición al lado
derecho y anulable encima del nodo. Esto queda entonces:
b. Nodos ε
No existe ningún nodo ε por lo tanto no se realiza nada para este tipo de
nodo.
---------------------------------------------------------------------------------------------------------------------------------- 8
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
c. Nodo |
Calcular Anulable, para lo cual se aplica la formula Anulable (c1) OR
Anulable (c2).
Para Primera y última posiciones, se hace la unión de primeraPos (c1)
con PrimperaPos(c2) es decir, PrimeraPos(c1) U PrimeraPos(c2) y de
igual manera para la ultima Posición, UltimaPos(c1) U UltimaPos(c2).
d. Nodo *
e. Nodo . (concatenación)
El árbol queda:
---------------------------------------------------------------------------------------------------------------------------------- 10
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
La función siguiente indica que valor le sigue a cada símbolo. Es decir, que
valor se espera que siga a cada símbolo. Los valores siguientes se
calculan llenando una tabla del nodo i y el valor siguiente de i hasta i=n
---------------------------------------------------------------------------------------------------------------------------------- 11
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
I Siguiente(i)
Esta función se aplica para los nodos punto (.) y nodos asterisco bajo las
siguientes reglas:
---------------------------------------------------------------------------------------------------------------------------------- 12
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
i Siguiente(i)
1 1,2 a 1 le sigue
{1,2}
2 1,2 A 2 le sigue
{1,2}
Por ejemplo.
A 1 y 2 le sigue 3 porque ultimaPos(c1) = {1,2}
PrimeraPos(c2)=3
---------------------------------------------------------------------------------------------------------------------------------- 13
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
i Siguiente(i)
1 1,2,3 a 1 le sigue
{1,2} Se
agrega el 3
2 1,2,3 A 2 le sigue
{1,2} Se
agrega el 3
i Siguiente(i)
1 1,2,3 a 1 le sigue
{1,2} Se
agrega el 3
2 1,2,3 A 2 le sigue
{1,2} Se
agrega el 3
3 4
4 5
5 6
So = {1,2,3}
Siguiente(a) = siguiente (1) U siguiente (3) Estos son los dos símbolos que
tienen el símbolo a. Se realiza la operación de unión de los conjuntos de
siguiente(1) con siguiente(3)
---------------------------------------------------------------------------------------------------------------------------------- 15
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
S1 = {1,2,3,4} Dado que este salió del esto So esto significa que
Por lo que significa que del estado So con una b se va al mismo estado So
---------------------------------------------------------------------------------------------------------------------------------- 16
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
S1 = {1.2.3.4}
Con b: Siguiente (b) = siguiente (2) U siguiente (4) = {1, 2,3} U {5} = {1, 2, 3,5}
Se terminan todos los símbolos de S1 por lo que se verifica si hay algún estado
aun sin trabajar. Aun falta el estado S2.
S2 = {1,2,3,5}
---------------------------------------------------------------------------------------------------------------------------------- 17
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
S3= {1,2,3,6}
---------------------------------------------------------------------------------------------------------------------------------- 18
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta
-------------------------------------------------------------------------------------------------------
a b
So S1 So
S1 S1 S2
S2 S1 S3
S3 S1 So
Derechos reservados
Prohibida su copia total o parcial sin autorización del autor
---------------------------------------------------------------------------------------------------------------------------------- 19
LENGUAJES FORMALES Y DE PROGRAMACION
SECCOIN A+
ING. Otto A. Rodríguez Acosta