Вы находитесь на странице: 1из 5

Construccin de un AFN a

partir de una expresin


regular
Entrada: una expresin regular r en un alfabeto A.
Salida: un AFN N que acepte L(r).
Mtodo: Primero se hace el anlisis sintctico de r en sus subexpresiones constituyentes.
Despus, por las reglar 1 y 2 que se vern ms adelante, se construyen los AFN para
cada uno de los smbolos bsicos de r (aquellos que sean -epsilon- o un smbolo de
alfabeto). Los smbolos bsicos corresponden a las partes 1 y 2 de la definicin de una
expresin regular. Es importante comprender que si un smbolo a aparece varias veces
en r, se construye un AFN independiente en cada caso. Despus, guindose por la
estructura sintctica de la expresin regular r, se combinan inductivamente esos AFN
utilizando la regla 3 que se ver ms adelante hasta obtener el AFN para la expresin
completa. Todos los AFN intermedios producidos durante el curso de la construccin
corresponden a una subexpresin de r y tienen varias propiedades importantes: tiene
exactamente un estado final, ninguna arista entra en el estado inicio, y ninguna arista
sale del estado final.
1. Para , construir el AFN

Aqu i es un nuevo estado de inicio y f es un nuevo estado de aceptacin.


Ciertamente este AFN reconoce {}.
2. Para a de A, construir el AFN.

De nuevo, i es un nuevo estado de inicio, y f, un nuevo estado de aceptacin. Esta


mquina reconoce {a}.
3. Supngase que N(r) y N(s) son AFN para las expresiones regulares r y s.
a) Para la expresin regular r|s, constryase el AFN compuesto N(r|s):

Aqu, i es un nuevo estado de inicio, y f, un nuevo estado de aceptacin. Hay una


transicin con desde i a los estados de inicio de N(r) y N(s). Hay una transicin con
desde los estados de aceptacin de N(r) y N(s) al nuevo estado de aceptacin f. Los
estados de inicio y aceptacin de N(r) y N(s) no son estados de aceptacin de N(r|s).
Obsrvese que todos los caminos desde i a f deben pasar exclusivamente por N(r) o
N(s). As se ve que el AFN reconoce L(r) U L(s).
b) Para la expresin regular rs, constryase el AFN compuesto N(rs):

El estado de inicio de N(r) se convierte en el estado de inicio del AFN compuesto y el


estado de aceptacin de N(s) se convierte en el estado de aceptacin de del AFN
compuesto. El estado de aceptacin de N(r) se fusiona con el estado de inicio de N(s);
es decir, todas las transiciones desde el estado de inicio de N(s) se convierten en
transiciones desde el estado de aceptacin de N(r). El nuevo estado fusionado pierde
su condicin de estado de inicio o de aceptacin en el AFN compuesto. Un camino
desde i a f debe pasar primero travs de N(r), y despus por N(s), de modo que la
etiqueta de ese camino ser una cadena de L(r)L(s). Puesto que ninguna arista entra
en el estado de inicio de N(s) ni sale del estado de aceptacin de N(r), no puede
haber ningn camino desde i a f que vuelva de N(s) a N(r). Por tanto, el AFN
compuesto reconoce L(r)L(s).
c) Para la expresin regular r*, constryase el AFN compuesto N(r*):

Aqu, i es un nuevo estado de inicio y f un nuevo estado de aceptacin. En el AFN


compuesto, se puede ir desde i a f directamente, a lo largo de una arista etiquetada
por , que representa el hecho de que est en (L(r))*, o se puede ir desde i a f
pasando por N(r) una o ms veces. Ciertamente, el AFN compuesto reconoce (L(r))*.
d) Para la expresin regular entre parntesis (r), utilcese N(r) como AFN.

Cada vez que se construye un nuevo estado, se le da un nombre distinto. De esta


forma, no puede haber dos estados de un AFN compuesto con el mismo nombre.
Aunque aparezcan los mismos smbolos varias veces en r, se crea para cada ejemplo
de ese smbolo un AFN aparte con sus propios estados.
Se puede comprobar que cada paso de la construccin del algoritmo produce un
AFN que reconoce el lenguaje correcto. Adems la construccin produce un AFN N(r)
con las siguientes propiedades:
1. N(r) tiene a lo sumo el doble de estados que de smbolos y operadores en r. Esto se
debe al hecho de que en cada paso de la construccin se crean a lo sumo dos
nuevos estados.
2. N(r) tiene exactamente un estado de inicio y otro de aceptacin. El estado de
aceptacin no tiene transiciones salientes. Esta propiedad se cumple igualmente
para todos los autmatas constituyentes.
3. Cada estado N(r) tiene una transicin saliente con un smbolo en A o a lo sumo dos
transiciones salientes

BIBILIOGRAFIA:
Texto: A HO .C OMPILADORES . P RINCIPIOS , TCNICAS Y HERRAMIENTAS . ED. Pearson.
Imgenes: D I B ERARDINI . ANALISI L ESSICALE

Вам также может понравиться