Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

download Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

of 20

Transcript of Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    1/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.1/20

    GUIA II EXPRESIONES REGULARES Y AUTOMATAS

    Tres clases hay de ignorancia: no saber lo que debierasaberse, saber mal lo que se sabe, y saber lo que no debierasaberse.

    Faccois de la Rochefoucald(1613-1680) Escritor francs

    Donald Ervin Knuth Nacido el 10 de enero de1938, es uno de los ms renombrados cientficos dela computacin, profesor emrito de la Universidadde Stanford. Es conocido como autor de mltiplesvolmenes: El arte de la programacin decomputadoras, considerado como una referencia enel rea de ciencias de la computacin, prcticamentefue el creador del anlisis de algoritmos ycontribuyo significativamente a varias ramas deteora de las ciencias de la computacin

    COMPILADORESPara subsanar los problemas que presentan los interpretes se crean los compiladores.

    El traductor de un lenguaje de programacin de alto nivel a cdigo de maquina oensamblador se conoce como compilador.

    PROGRAMA PROGRAMA

    FUENTE OBJETO

    ANALIZADOR ANALIZADOR GENERADOR

    LEXICO SINTACTICO DE CODIGO

    http://en.wikipedia.org/wiki/Image:KnuthAtOpenContentAlliance.jpg
  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    2/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.2/20

    DIAGRAMA DE BLOQUE DE UN COMPILADORCODIGO DE MAQUINA DE UN COMPUTADOR

    H I POTETI CO (IDEA L)ABSTRACTO .

    PROGRAMA FUENTEAlto Nivel

    G.C.I.

    CODIGOINTERMEDIO

    G.C.

    CODIGOMAQUINA

    Ventajas de la mquina abstracta:

    1 El compilador es independiente de la mquina destino y por tanto es ms transportable.2 Las caractersticas del hardware destino estn consideradas en el generador del cdigo.3 Facilidad para llevar a cabo algunas estrategias de optimizacin (Asignacin de

    registros).

    Desventajas:El cdigo de mquina generado a partir de C.I. por lo general ser menos eficiente que elcdigo de mquina generado directamente debido al nivel de traduccin adicional.

    Estructura de un compilador

    Un compilador es un programa, en el que pueden distinguirse dos mdulos principales,cada uno de los cuales realiza una fase: fase de anlisis en la que descompone el cdigofuente y analiza su estructura, y la otra fase de sntesis en la que integra los quedescompuso en la fase previa, generando cdigo objeto. Adems, pueden distinguirsealgunas estructuras de datos entre ellas la tabla de smbolos, junto con los mdulos degestin de esta, y de los dems elementos del compilador, y de una serie de rutinasauxiliares para deteccin y manejo de errores.

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    3/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.3/20

    Fuente

    Anlisis lexicogrfico

    TA Anlisis SintcticoBLA Anlisis Semntico

    y de tipos

    DE

    S Generacin de cdigoI intermedioMBO Generacin de cdigoS

    Cdigo relocalizable

    Enlazador

    Objeto

    Funciones caractersticas de un analizador lxicoa- Eliminar espacios, comentarios, etc.

    b- Reconocer los componentes lxicos: identificadores, constantes etc.c- Generar un listado para el compilador.

    EXPRESIONES REGULARES Definicin.- Una expresin regular es una regla de formacin, que permite definir unconjunto de secuencias llamada conjunto regular. A este conjunto tambin se le suelellamar Lenguaje regular.

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    4/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.4/20

    Si es un alfabeto y O es un conjunto de operadores, podemos afirmar que una expresinregular r esta constituida de operandos y operadores.

    Cada operando puede ser:

    - Una expresin regular simple: cuyos operandos son elementos del alfabeto- Una expresin regular compuesta: cuyos operandos son otras expresiones

    regulares.

    Ejemplo 1

    = {a,b} O={*,/} a*, a*b a/b son ejemplos de expresiones regulares

    r =a * genera L(r)= { secuencias de 0 o mas a }r =a*b genera L(r) ={ secuencias de 0 o mas as que termina con una b}r=a / b genera L(r) = {a, b}

    Si consideramos : Si = {L,D}, donde L: letra y D: Dgito

    construimos la expresin regular r = L(L/D)*que genera un conjunto de secuencias L(r)L(r) = {Secuencia de Letra y Dgitos que empiezan con una letra}

    L(r) no es otra cosa que el conjunto de los identificadores del lenguaje Pascal.Una expresin regular puede definirse como una composicin de expresiones regulares.

    Mtodo para definicin de construcciones regulares:

    - Sea : alfabeto

    - r : genera L(r) = { }- r = a genera L(r) = {a}

    Si r, s son expresiones regulares con sus lenguajes L(r) y L(s) respectivamente entonces:

    - (r) es una e.r. , genera L(r)- (r)/(s) es una e.r. , genera L(r) U L(s)- (r)(s) es una e.r. , genera L(r) . L(s)- (r)* es una e.r. , genera (L(r))*

    como ejemplo podemos ver que si ={a,b}r = genera L(r) ={ }r = a genera L(r) ={a} , (r) genera el mismo L(r)r = a/b genera L(a/b) = {a} U {b} = {a, b}r = a* genera L(r) = { , a, aa, aaa, aaaa,...}

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    5/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.5/20

    PROPIEDADESUna expresin regular cumple las siguientes caractersticas:

    r/s = s/r conmutatividad respecto a /

    r/(s/t) = (r/s)/t asociatividad respecto a /

    (rs)t = r(st) asociatividad respecto a la concatenacin.

    r(s/t) = rs / rt distribucin derecha de la concatenacin respecto de /.

    (s/t) r = sr / tr Distribucin por la izquierda de la concatenacin respecto de /.

    .r = r . = r es el idntico de r

    r** Idempotencia de r

    una expresin regular puede representarse mediante un grafo, en el cual las aristas estnetiquetadas con los elementos del alfabeto.

    Ejemplo 2r = ab* r = a*b

    b a

    a bA B A B

    Definiciones regularesPartiendo del alfabeto S de smbolos bsicos, pueden crearse una definicin regular comouna secuencia de definiciones :

    d1 r 1 Para todo i , di es un nombre distintod2 r 2 r i es una expresin regular sobre AU{ d1, d2,...dn}...

    dn r n

    Ejemplo 3 Si L = { ID / ID es un identificador de Pascal }creamos una e.r. r t.q. L(r) = L

    Una definicin regular es : L > A/B/...Z/a/.../z

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    6/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.6/20

    D > 0/1/...9 ID > L(L/D)*

    Ejemplo 4 Consideremos los siguientes lenguajes definidos algebraicamente

    Construya la gramtica0m1n0m+n m, n >01n+m 0n0m m, n >0

    Todas las cadenas de ceros y unos con al menos dos ceros consecutivos La expresinregular correspondiente es: (0/1) *00(0/1) *

    Todas las cadenas de ceros y unos que comienzan con uno y no tienen dos cerosconsecutivos

    Ejercicio 1Defina la expresin regular paraa. Identificadores de Java

    b. Nmeros reales con o sin signoc. Secuencias que tengan el mismo nmero de ceros que de unos

    Ejercicio 2Describa tres conjuntos que no sean regulares

    AUTM ATAS FI NI TOS

    Un Autmata finito es una maquina de estados finitos que reconoce secuenciasgenerados por una expresin regular.

    formalmente un Autmata se define como un modelo matemtico:M =(E, , , 0 , F)

    E : conjunto de estadosA : alfabeto de entrada ( alfabeto)

    : funcin de transicin : E x E0 : estado inicial

    F : conjunto de estados de aceptacin

    el conjunto F contiene todos los estados que resultan de aplicar la funcin aalgn estado, es decir :

    F = { j / existe i donde ( i , a) = j para algn a }

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    7/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.7/20

    Puede considerarse elemento de F a todos los estados de aceptacin de la funcin de lamquina de estados M.

    r M(r)

    El autmata M(R) puede ser determinista (AFD) o no determinista(AFND). M esdeterminista cuando a partir de un estado puede pasarse a un solo estado con cada entradadel alfabeto, adems no tiene ninguna transicin con para cada estado.

    Un Autmata es no determinista cuando se da el caso que existe mas de una transicindesde un estado con la misma entrada. Tanto los autmatas deterministas como los nodeterministas pueden reconocer conjuntos regulares generados por expresiones regulares o

    por gramticas regulares.

    Ejemplo 5 sea r = (a/b)*ab expresin regular, construimos M(r) autmata no determinista, a

    partir de la expresin regular.

    a/ba b

    0 1 2

    inicio

    M(E, , , 0, F) E={ 0, 1, 2} = { a, b} F = { 2}a b

    0 { o , 1 } { o }1 - { 2 }

    2 - -

    puede verse que las entradas en la matriz de una matriz no deterministas son conjuntos,mientras que en un autmata deterministas son elementos de E.

    Ejercicio 3

    Defina la expresin regular paraa. Conjunto de frases que inician con 1 y nunca hay dos a consecutivas

    b. El conjunto de ceros y unos cuyo nmero de unos es mltiplo de tresc. El conjunto de nmeros decimales en binario mltiplos de tresd. El conjunto de frases de ceros y unos que inician con uno

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    8/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.8/20

    Ejemplo 6 El siguiente autmata determinista corresponde a la expresin regular r = (a/b)*ab

    b a

    a b

    0 1 2

    ab

    M(E, , , 0, F) E={ 0, 1, 2} = { a, b} F = { 2}

    a b

    0 1 o

    1 1 2

    2 1 o

    Ntese que las entradas en la matriz corresponden a estados de M, no son conjuntos.Esta es una diferencia fundamental entre los autmatas deterministas y los no deterministas.

    Ejercicio 4Defina tres conjuntos regulares en forma algebraica y en forma regular (expresinregular)

    Ejercicio 5Muestre el autmata finito para los conjuntos regulares del ejercicio 4

    Construccin de un autmata no determinista a partir de una expresinregular

    Cuando la expresin regular no es muy compleja es fcil construir su autmatacorrespondiente, determinista o no, como se mostr en los ejemplos anteriores. Sinembargo cuando la expresin es compleja se requiere de un mtodo sistemtico y modular

    para construir el autmata.

    Para construir un autmata a partir de una expresin regular utilizamos el mtodo decomponentes, en el cual se construyen

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    9/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.9/20

    Maquinas para cada subexpresion regular y se ensamblan en forma modular hasta obtenerel autmata final correspondiente a la expresin regular inicial.Entrada : r ( expresin regular)Salida : M ( autmata no determinista)

    Mtodo:Se analiza la expresin regular r, descomponindola en subexpresiones regulares. En cadacaso se construye el autmata correspondiente, luego se acoplan en forma sistemtica paraobtener el autmata M(r). M(r) es llamado Autmata generado por una expresin regular r.

    Para construir M(r) se tiene en consideracin los siguiente:

    1 Sea r = expresin regular, podemos construir M(r) :

    i j M(r)

    2 Sea r = a expresin regular, para algn a podemos construir M(r)

    a

    i j M(a)

    3 Sea r y s son expresiones regulares, y sean M(r) y M(s)

    sus maquinas asociadas:

    i j M(r)

    i j M(s)

    Podemos construir

    M(r/s) : mquina que reconoce secuencias generadas por la laexpresin r/s.

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    10/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.10/20

    M(r)

    i j

    i f

    M(r) i j

    Mtodo:1 Se inserta un nuevo estado inicial y estado final i , f2 El nuevo estado inicial se conecta con los estados iniciales de las maquinas.3 Los estados finales de las maquinas se conectan con el nuevo estado final.

    M(r.s) : mquina que reconoce secuencias generadas por laLa expresin r.s

    j f

    i i M(S)

    M(r)

    Mtodo:

    1 Se inserta un nuevo estado inicial y estado final i , f2 El nuevo estado inicial se conecta con el estado inicial de la primera mquina.3 El estado final y el estado inicial de la primera y segunda maquina

    respectivamente se convierten en uno solo.4 El estado final de la segunda maquina se conecta con el nuevo

    estado final.

    M(r*) : maquina que reconoce secuencias generadas por la expresin r*

    i i j f

    M(r)

    Mtodo:

    1 Se inserta un nuevo estado inicial y estado final i , f2 El nuevo estado inicial se conecta con el estado inicial de la primera maquina.3 El estado final de la segunda mquina se conecta con el nuevo estado final.

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    11/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.11/20

    4 Se aade una arista desde el estado final hacia el estado inicial de la mquinainicial, con la entrada .

    Equivalencia entre Autmatas finitos y expresiones regulares

    AF nodeterminista

    AF AF no determ.Determinista con transic.

    Expresinregular

    Para toda expresin regular r, Existe M autmata finito no determinista con transiciones tal que L(r) = L(M)

    Ejemplo

    sea r = ab(a/b)* e.r. , construimos M(r) autmata no determinista, a partir de la expresinregular.sea a, b expresiones regulares, podemos construir M(a)y M(b).

    aM(a)

    bM(b)

    Construimos M((a/b)*)

    a

    b

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    12/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.12/20

    Si unimos los tres autmatas obtenemos el autmata final:

    a

    a b

    b

    Conversin de un Autmata no determinista a uno determinista

    Se puede construir un autmata determinista a partir de uno no determinista construido porel mtodo de componentes.

    Entrada M : autmata no deterministaSalida N : autmata deterministaMtodoConstruimos una nueva matriz de transiciones , en donde cada estado es un conjunto deestados del autmata inicial. Para ello hacemos uso de tres funciones:

    CERRADURA_ ( i) : conjunto de estados alcanzables desde el estado i , solamente con

    transiciones

    CERRADURA_ (A) : conjunto de estados alcanzables desde algn estado de A, solamentecon transiciones

    MUEVE(A,a ) : conjunto de estados alcanzables desde algn estado de A, solamente con elsmbolo a.

    Ejercicio 6Muestre el autmata no determinista para los conjuntos regulares del ejercicio 2

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    13/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.13/20

    Ej emplo 7 Consideremos la expresin regula r = (a/b)*ab. Presentaremos un autmata no determinista ,construido utilizando el mtodo de componentes:

    a 2 3

    a b 0 1 6 7 8 9

    4 b 5

    construiremos un autmata determinista equivalente.Aplicamos el mtodo descrito:

    CERRADURA _ (0 ) : {0,1,2,4,7}= A

    MUEVE(A,a) :{3,8}CERRADURA _ ( MUEVE(A,a)) = CERRADURA _ ( {3,8}) = {1,2,3,4,6,7,8 } = B

    MUEVE(A,b) :{5}CERRADURA _ ( MUEVE(A,b)) = CERRADURA _ ( {5}) = {1,2,4,5,6,7 } = C

    MUEVE(B,a) :{3,8}CERRADURA _ ( MUEVE(B,a)) = CERRADURA _ ( {3,8}) = {1,2,3,4,6,7,8 } = B

    MUEVE(B,b) :{5, 9}CERRADURA _ ( MUEVE(B,b)) = CERRADURA _ ( {5,9}) ={1,2,4,5,6,7,9 } = D

    MUEVE(C,a) :{3,8}CERRADURA _ ( MUEVE(C,a)) = CERRADURA _ ( {3,8}) = {1,2,3,4,6,7,8 } = B

    MUEVE(C,b) :{5}

    CERRADURA _

    ( MUEVE(C,b)) = CERRADURA _

    ( {5}) = {1,2,4,5,6,7 } = CMUEVE(D,a) :{3,8}CERRADURA _ ( MUEVE(D,a)) = CERRADURA _ ( {3,8}) = {1,2,3,4,6,7,8 } = B

    MUEVE(D,b) :{5}CERRADURA _ ( MUEVE(D,b)) = CERRADURA _ ( {5}) ={1,2,4,5,6,7 } = C

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    14/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.14/20

    Mientas aparezcan nuevos estados se repetir el proceso para los nuevos estados. En elejemplo aparecen los estados A, B, C, D.

    Finalmente tenemos el autmata determinista equivalente, correspondiente e la expresinregular r = (a/b)*ab

    bC

    b b a

    a b A B D

    a a

    M(E, A, , 0, F)E={A, B, C, D} A = { a, b} F = {D}

    a b

    A B CB B DC B CD B C

    El autmata finito es un modelo matemtico que puede implementarse desde un simpledispositivo electrnico (Flip-flop) hasta un computador completo. Tiene como funcin

    primordial servir para describir el comportamiento de ciertos programas de computadorasque no contienen hardware. Estos modelos son tiles en el estudio de la teora de lenguajesy compiladores y en otros sistemas que requieran de un anlisis lexicogrfico y sintcticode un lenguaje.

    Ejercicio 7Muestre el autmata determinista para los autmatas no deterministas del ejercicio 3

    AUTMATAS COCIENTESSi M es el autmata M( E, , , 0, F)E : conjunto de estados

    : conjunto finito de smbolos : funcin siguiente

    F : Conjunto de estados de aceptacin o salida

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    15/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.15/20

    0 : estado inicial , esta en el conjunto ETrabajando sobre el conjunto de estados de M, podemos describir una relacin R sobre Ede la siguiente forma :

    Para todo p, q E, p R q si y solo si (p,x) R (q,x) para todo x

    Si esta relacin se cumple , entonces decimos que R determina una relacin decongruencia y a su vez genera un Autmata cociente. Es decir si para un par de estadosequivalentes en R se produce siempre pares equivalentes de estados bajo cualquier x S.

    Esta relacin R sobre E determina un conjunto cociente llamada Autmata cociente M/R,donde el conjunto de estados es precisamente :

    E/R = {[ ] / E}

    El autmata cociente ser : M/R = (E/R, , ', [ 0] ,F/R)

    E/R : conjunto de estados ( clases de equivalencia de E): conjunto finito de smbolos

    ' : funcin siguiente, definida : ': E/R x E/RF/R : Conjunto de estados de aceptacin[ 0] : clase inicial , [ 0] E/R

    Ejemplo 8 Sea M(E, , , 0,F)

    donde: E={0,1,2,3,4,5} = {a,b}

    a b1 0 1 0 0 0

    0 0 4 0 1 0 1 0 11 1 0 1 0 1 0 0 02 2 4 R = 0 1 0 1 0 13 5 2 0 0 0 0 1 04 4 3 0 1 0 1 0 15 3 2

    Podemos verificar que R es de equivalencia por ser reflexiva, simtrica y transitiva.Adems se obtiene la particin de E determinado por R compuesta por las clases deequivalencia sobre E

    [0] = {0, 2} [1] = {1, 3, 5} [4] = {4}

    Construimos M'(E/R, , ', 0,F) E/R ={ [0], [1], [4] }el alfabeto es el mismo:

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    16/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.16/20

    Para todo p, q [0], a se tiene (p, a) R (q, a)es decir que partiendo de algn estado de [0] y ocurre unaa en la entrada, se llega a algn elemento de [0].

    Lo mismo ocurre para las dems clases, cuando ocurre un a en la entrada. Sin embargo

    cuando ocurre una b en la entrada, vemos que: para todo p [0] se tiene (p, b) [4],

    para todo p [1] se tiene (p, b) [0], para todo p [4] se tiene (p, b) [1].de acuerdo a esto ' es :

    a a a' a b

    [0] [1] [4][0] [0] [4] b b[1] [1] [0]

    [4] [4] [1] b

    Simplificacin de un autmata finito

    Para M =(E, , , 0 , F )

    E : conjunto de estados: alfabeto de entrada

    : funcin de transicin : E x E0 : estado inicial

    F : conjunto de estados de aceptacin

    Si definimos una relacin de equivalencia R, de la forma siguiente:Para todo a, b E y W *, decimos que:a es compatible con b Si y solo si (a, w) y (b, w) pertenecen ambas a F o ninguna

    pertenece a F.

    R es reflexiva, simtrica y transitiva por tanto es de equivalencia.Sea W * , definimos w' = x . w (x concatenado con w)Si a R b entonces (a, w') y (b, w') ambos pertenecen a F o ninguno pertenece a FPero: (a, w') = (a , x.w) = ( (a, x) ,w)

    (b, w') = (b, x.w) = ( (b, x) ,w)

    por tanto (a, x) y (b, x) son compatibles en w para todo W *, es decir (a, x) R (b, x)

    luego si a, b E y x a R b implica que (a, x) R (b, x)

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    17/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.17/20

    por tanto R es de congruencia, y determina el autmata cociente M':M'= M/R = (E/R, , ', o, F/R)

    Podemos verificar que L(M) = L(M')Sea w L(M),w es una secuencia del lenguaje, por tanto es reconocida por

    el autmata M, es decir: ( o ,w) F , '([ 0 ],w) = [ ( o ,w)] F/R por tanto w L(M')Sea w e L(M')

    '([ o ],w) = [ ( o ,w)] F/Resto es para algn a E se cumple que a R ( o, w)entonces a es compatible con ( o, w) en w' para w' *

    Minimizacin del nmero de estados

    Para reducir el numero de estados de un autmata se construye un nuevo autmata

    cuyos estados resultan de particionar sucesivamente el conjuntos de estados de la maquinainicial hasta obtener una particin que tengan transiciones de estados de un grupo haciaestados del mismo grupo.

    Algoritmo

    Entrada : M ( autmata determinista)Salida : M s (autmata determinista simplificado)

    Mtodo :

    1 Se parte el conjunto E en dos grupos : estados finales, y estados no finales P(E) = {F,E-F}2 Para cada grupo G de P(E) , hallar una particin P(G), de tal forma que dos estadosestn en el mismo subgrupo, si para todos los smbolos del alfabeto, tienen transicioneshacia el mismo subgrupo.

    3 Repetir 1 y 2 hasta que se tengan grupos que ya no se puedan partir.

    Al final se tendr una particin, en el que cada grupo ya no se pueda subdividir. Loselementos de esta particin son las clases de equivalencia de E. Estas clases se considerarancomo los estados de la maquina simplificada.

    Ejercicio 8Construir el autmata no determinista por el mtodo descrito para las siguientesexpresiones regulares del ejercicio (2)

    a) (a/b)*ab b) b(a/b)*c) l(l/d)*d) (ab*ab*ab*)*

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    18/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.18/20

    Ejemplo 9Consideremos el autmata no determinista construido en el ejemplo 7, y consideremos suautmata determinista obtenido a partir de el.

    b

    C

    b b a

    a b A B D

    a a

    M(E, A, , 0, F)

    E={A, B, C, D} A = { a, b} F = {D} a b

    A B CB B DC B CD B C

    Aplicando el mtodo de simplificacin:

    Hallamos una particin de E , en dos conjuntos: los estados finales y los estados no finales:E = {{D}{A,B,C}}

    Hallamos una particin del conjunto {A,B,C}E = {{D},{A,C},{B}}

    Ntese que :

    - Estando en el estado D, con una a, se pasa a B y con una b se pasa a C.- Estando en el estado B, con una a, se queda en el estado B, y con una b se pasa al

    estado D.

    - Estando en los estados A-C, con una a se pasa al estado B, y con una b sequeda en el estado A-C

    Luego la maquina simplificada, tiene como estados a las clases E ={[A],[B],[D]}

    Donde [A]={A,C} ,[B]={B} y [D]={D}La maquina simplificada es la siguiente:

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    19/20

    Lenguajes y Traductores FISI 2014-II

    Augusto Cortez Vsquez Pag.19/20

    b a

    a b[A] [B] [D]

    ab

    M(E, , , 0, F) E={[A], [B], [D]} = { a, b} F = {[D]}

    a b

    [A] [B] [A][B] [B] [D]

    [D] [B] [A]

    Esta mquina es la misma que se construyo inicialmente en el ejemplo 432

    Construccin de una gramtica a partir de una expresin regular

    Sea r expresin regular , podemos construir M(r) autmata que reconoce secuenciasgeneradas por r, es decir L( r) = L(M)M se define formalmente como: M = (E, , , o, F)A partir de M podemos construir la gramtica G(V N, V T, S, P), tal que:

    L(G) = L (M) = L( r)

    Mtodo 1:Paso 1 : hacemos V T = smbolos terminales

    V N = E smbolos no terminalesS = 0 axioma o smbolo inicial

    Paso 2 : si se cumple en la matriz de transicin que

    ( i, a) = j para algn a entonces construimos la regla de produccin

    p : i a j

    Paso 3 : si se cumple en la matriz de transicin quei F ( i es estado final )

    entonces construimos la regla de produccin p : i

  • 8/11/2019 Lenguajes 2014-II Guia 2 (Expresiones Regulares y Automatas )

    20/20

    Lenguajes y Traductores FISI 2014-II

    Mtodo 2:Se cumplen los Paso 1 y Paso 2 del mtodo 1y aadimos un nuevo paso 3:

    Paso 3 : si se cumple en la matriz de transicin que (

    i, a)

    F , para algn a

    entonces construimos la regla de produccin p : i a

    la gramtica construida por el mtodo 2 no posee producciones .

    Ejercicio 9Convertir cada uno de los autmatas del ejercicio 8 a autmata determinista

    Ejercicio 10Hallar la gramtica para los autmatas reducidos del ejercicio 6

    R R EEFFEER R EENNCCIIAASS BBIIBBLLIIOOGGR R AAFFIICCAASS

    [1] [AHO 2004 ] Aho A.,Sethi,Ullman Compiladores, principios, tcnicas yherramientas; Addison -Wesley1990, Wilmington-Delaware EUA.

    [2] [BECK 1988] BBECK Leland Software de Sistemas Addisson Wesley iberoamericana Wilmington Delaware 1988

    [3] [BROOKSHEAR 1993] BROOKSHEAR J. GleanTeora de la computacinAddisson Wesley iberoamericana Wilmington Delaware 1993

    [4] [CORTEZ 2011 ] Cortez Vsquez, Augusto. Matemticas Discretas, Edit San

    Marcos Lima Peru[5] [CORTEZ 2002] Cortez Vsquez, Augusto. Lenguajes y compiladores, UCSS2013 Lima Peru..

    [6] [DEITEL 1987] Deitel Harvey M.. Introduccin a los sistemas operativos;Addison-Wesley, Iberoamenricana 1987 Wilmigton Deleware E.U.A:

    [7] [HOPCROFT 1993] Hopcroft Jhon, Ullman Jeffrey

    Introduccin a la teora de autmatas Edit. CECSA 1993

    [8] [JOHNSONBAUGH 1999] Johnsonbaugh Richard Mateamticas Discretas; PrenticeHall 1999

    [9] [KOLMAN 1997] Kolman-Busby- Ross Matematicas Discretas; Prentice Hall 1997[10] [PEA 1998] PEA MARI, Ricardo Diseo de programas, Formalismo y abstraccin

    Prentice Hall Madrid 1998[10] [PRATT 1988] Terrence W. Pratt. Lenguajes de programacin, Diseo e

    implementacin; Prentice Hall Hispanoamericana 1988 [11] [SETHI 1992] SETHI, Ravi LENGUAJES DE PROGRAMACION , Conceptos y

    Constructores; Addison -Wesley, 1992 .[12] [TEUFEL 1990] Teufel-Smithd- Teufel. Compiladores, Conceptos fundamentales;

    Addison-Wesley, 1990 .