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