AUTOMATA.unlocked

Embed Size (px)

Citation preview

  • 7/31/2019 AUTOMATA.unlocked

    1/106

    CUADERNO DIDCTICO N ...

    LENGUAJES

    GRAMTICAS

    Y

    AUTMATAS

    Juan Manuel Cueva Lovelle

    Catedrtico de E.U. de Lenguajes y Sistemas Informticos

    Departamento de Informtica

    Universidad de Oviedo

    Segunda edicin

    BORRADOR, Noviembre 2001

  • 7/31/2019 AUTOMATA.unlocked

    2/106

    A Guillermo, Antonio y Paloma

  • 7/31/2019 AUTOMATA.unlocked

    3/106

    LENGUAJES, GRAMTICAS Y AUTMATAS. Segunda Edicin

    Juan Manuel Cueva Lovelle. Oviedo (Espaa), 2001.

    Reservados todos los derechos. De conformidad con lo dispuesto en el art. 534-bis del Cdigo Penal vigente, podrn ser castigados

    con penas de multa y privacin de libertad quienes reprodujeren o plagiaren, en todo o en parte, una obra literaria, artsticao cientfica

    fijada en cualquier tipo de soporte sin la preceptiva autorizacin.

    ISBN: 84-

    Depsito legal: AS/

    Impreso en

  • 7/31/2019 AUTOMATA.unlocked

    4/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    TABLA DE CONTENIDOS

    CAPTULO 1: INTRODUCCIN ............................................................................................. 1

    CAPTULO 2: DEFINICIONES PREVIAS ............................................................................. 32.1 Smbolo .................................................................................................................................... 3

    2.1.1 Ejemplos .............. ............... .............. .............. .............. .............. .............. ............... ......... 32.2 Vocabulario o alfabeto .............. .............. .............. .............. ............... .............. .............. .......... 3

    Ejemplos 2.2.1 .............. ............... .............. .............. .............. .............. .............. ............... ......... 32.3 Cadena .............. .............. ............... .............. .............. .............. .............. .............. ............... ..... 3

    Ejemplos 2.3.1 .............. ............... .............. .............. .............. .............. .............. ............... ......... 42.4 Longitud de cadena .............. .............. .............. .............. .............. ............... .............. .............. . 4

    Ejemplos 2.4.1 .............. ............... .............. .............. .............. .............. .............. ............... ......... 42.5 Cadena vaca .............. .............. .............. .............. .............. .............. ............... .............. ........... 42.6 Concatenacin de cadenas ...................... .............. ............... .............. .............. .............. .......... 42.7 Universo del discurso .............. .............. ............... .............. .............. .............. .............. ............ 5

    Ejemplo 2.7.1 ............ ............... .............. .............. .............. .............. .............. ............... ............. 52.8 Lenguaje .............. .............. .............. .............. ............... .............. .............. .............. .............. .... 5

    Ejemplo 2.8.1 ............ ............... .............. .............. .............. .............. .............. ............... ............. 52.9 Lenguaje vacio .............. .............. .............. ............... .............. .............. .............. .............. ........ 62.10 Gramtica ............. .............. ............... .............. .............. .............. .............. .............. ............... 6

    2.11 Autmata .............. .............. ............... .............. .............. .............. .............. ............... .............. 6

    CAPTULO 3: DEFINICIN FORMAL DE GRAMTICA ................................................. 7Ejemplo 3.1 .................................................................................................................................... 8Ejemplo 3.2 .................................................................................................................................... 8Ejemplo 3.3 .................................................................................................................................... 8Ejemplo 3.4 .................................................................................................................................... 83.5 Notacin .............. .............. .............. .............. ............... .............. .............. .............. .............. .... 9

    3.5.1 Vocabulario terminal .............. .............. .............. .............. ............... .............. .............. ..... 93.5.2 Vocabulario no terminal .............. .............. .............. ............... .............. .............. .............. 93.5.3 Vocabulario .............. ............... .............. .............. .............. .............. .............. ............... .... 93.5.4 Cadenas terminales .............. .............. .............. .............. .............. .............. ............... ........ 103.5.5 Cadenas ............ ............... .............. .............. .............. .............. .............. ............... ............. 10

    CAPTULO 4: RELACIONES ENTRE CADENAS ............................................................... 11

    4.1 Relacion de derivacin directa .............. .............. .............. .............. .............. ............... ............ 11Ejemplo 4.1.1 .............. .............. .............. .............. .............. .............. ............... .............. ........... 114.2 Relacion de derivacin .............. .............. .............. .............. ............... .............. .............. .......... 11

    Ejemplo 4.2.1 .............. .............. .............. .............. .............. .............. ............... .............. ........... 12

    CAPTULO 5: SENTENCIAS O INSTRUCCIONES ............................................................. 13Ejemplo 5.1 .................................................................................................................................... 13Ejemplo 5.2 .................................................................................................................................... 13

    CAPTULO 6: DEFINICIN FORMAL DE LENGUAJE .................................................... 146.1 Propiedad .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 14Ejemplo 6.2 .................................................................................................................................... 14Ejemplo 6.3 .................................................................................................................................... 14Ejemplo 6.4 .................................................................................................................................... 15Ejemplo 6.5 .................................................................................................................................... 15

    Ejemplo 6.6 .................................................................................................................................... 15Ejemplo 6.7 .................................................................................................................................... 16Ejemplo 6.8 .................................................................................................................................... 17

    CAPTULO 7: JERARQUA DE LAS GRAMTICAS ......................................................... 187.1 Gramticas de tipo 0 ............. ............... .............. .............. .............. .............. .............. .............. 18

    7.1.1 Ejemplos .............. ............... .............. .............. .............. .............. .............. ............... ......... 187.2 Gramticas de tipo 1 ............. ............... .............. .............. .............. .............. .............. .............. 18

    7.2.1 Ejemplos de gramticas de tipo 1 ............. ............... .............. .............. .............. .............. . 18Ejemplo 7.2.1.1 ..................................................................................................................... 19Ejemplo 7.2.1.2 ..................................................................................................................... 19Ejemplo 7.2.1.3 ..................................................................................................................... 19

    7.2.2 Ejemplos de gramticas que No son de tipo 1 ............. .............. .............. ............... .......... 19

    - IV -

  • 7/31/2019 AUTOMATA.unlocked

    5/106

  • 7/31/2019 AUTOMATA.unlocked

    6/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    14.1.1 Teorema ............. .............. ............... .............. .............. .............. .............. ............... ......... 5314.1.2 Teorema ............. .............. ............... .............. .............. .............. .............. ............... ......... 5314.1.3 Corolario .............. .............. .............. ............... .............. .............. .............. .............. ........ 53Ejemplo 14.1.4 .............. ............... .............. .............. .............. .............. .............. ............... ......... 53

    14.2 Algoritmo de transformacin de una gramtica de tipo 2 en un autmata de pila .............. .. 54Ejemplo 14.2.1 .............. ............... .............. .............. .............. .............. .............. ............... ......... 56

    Ejercicio 14.2.2 ............. .............. ............... .............. .............. .............. .............. ............... ......... 58CAPTULO 15: AUTMATAS FINITOS ................................................................................ 5915.1 Definicin formal de autmata finito ............. ............... .............. .............. .............. .............. . 5915.2 Lenguaje reconocido por un autmata finito ........... .............. .............. .............. ............... ..... 60

    15.2.1 Teorema ............. .............. ............... .............. .............. .............. .............. ............... ......... 6015.2.2 Teorema ............. .............. ............... .............. .............. .............. .............. ............... ......... 6015.2.3 Corolario .............. .............. .............. ............... .............. .............. .............. .............. ........ 60Ejemplo 15.2.4 .............. ............... .............. .............. .............. .............. .............. ............... ......... 61Ejemplo 15.2.5 .............. ............... .............. .............. .............. .............. .............. ............... ......... 63Ejemplo 15.2.6 .............. ............... .............. .............. .............. .............. .............. ............... ......... 64Ejemplo 15.2.7 .............. ............... .............. .............. .............. .............. .............. ............... ......... 65Ejemplo 15.2.8 .............. ............... .............. .............. .............. .............. .............. ............... ......... 65

    15.3 Clasificacin de los autmatas finitos ............... ............... .............. .............. .............. ........... 6615.3.1 Autmatas finitos no deterministas ................ .............. .............. .............. ............... ....... 67

    Ejemplo 15.3.1.1 ................................................................................................................... 6715.3.2 Autmatas finitos deterministas ..................... .............. .............. .............. .............. ........ 6815.3.3 Teorema sobre la transformacin de AFND en AFD ....................... .............. .............. .. 68

    Ejemplo 15.3.3.1 ................................................................................................................... 7015.4 Algoritmo de transformacin de una gramtica de tipo 3 en un autmata finito ............... ... 73

    Ejemplo 15.4.1 .............. ............... .............. .............. .............. .............. .............. ............... ......... 7415.5 Transformacin de una expresin regular en un autmata finito ............. .............. .............. . 76

    15.5.1 Equivalencia entre expresiones regulares bsicas y autmatas finitos ........ .............. ..... 7715.5.1.1 Expresin regular .............. .............. .............. .............. .............. ............... ............ 7715.5.1.2 Expresin regular a ................................................................................................. 7715.5.1.3 Expresin regular a* ................................................................................................ 7715.5.1.4 Expresin regular a+ ................................................................................................ 7815.5.1.5 Expresin regular a b ............................................................................................... 7815.5.1.6 Expresin regular (ab)* .......................................................................................... 7815.5.1.7 Expresin regular (acb)* ........................................................................................ 79

    15.5.1.8 Expresin regular (acd b)* ...................................................................................... 7915.5.2 Construccin de Thompson .......................... .............. .............. .............. .............. .......... 79Ejemplo 15.5.2.1 ........... ............... .............. .............. .............. .............. .............. ............... ... 80

    15.6 Minimizacin de estados de un AFD ....................... .............. .............. .............. ............... ..... 81Algoritmo 15.6.1 ........................................................................................................................ 81Ejemplo 15.6.2 .............. ............... .............. .............. .............. .............. .............. ............... ......... 83

    CAPTULO 16: EJERCICIOS RESUELTOS .......................................................................... 86Ejercicio 16.1 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 86Ejercicio 16.2 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 86Ejercicio 16.3 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 87Ejercicio 16.4 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 88Ejercicio 16.5 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 88Ejercicio 16.6 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 90

    CAPTULO 17: EJERCICIOS PROPUESTOS ....................................................................... 93Ejercicio 17.1 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 93Ejercicio 17.2 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 93Ejercicio 17.3 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 93Ejercicio 17.4 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 93Ejercicio 17.5 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 93Ejercicio 17.6 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 93Ejercicio 17.7 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 94Ejercicio 17.8 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 94Ejercicio 17.9 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 94Ejercicio 17.10 ............. .............. ............... .............. .............. .............. .............. .............. ............... 94

    CAPTULO 18: EJERCICIOS DE PROGRAMACIN ......................................................... 95

    |||

    |

    - VI -

  • 7/31/2019 AUTOMATA.unlocked

    7/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Ejercicio 18.1 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 95Ejercicio 18.2 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 95Ejercicio 18.3 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 95Ejercicio 18.4 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 95Ejercicio 18.5 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 95Ejercicio 18.6 .............. .............. .............. .............. .............. .............. ............... .............. .............. .. 95

    BIBLIOGRAFA ......................................................................................................................... 96

    - VII -

  • 7/31/2019 AUTOMATA.unlocked

    8/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    TABLA DE FIGURAS

    Fig. 1 : Relacin de inclusin entre gramticas ............. .............. .............. .............. ............... ...... 25Fig. 2 : Correspondencia entre gramticas y lenguajes .............. .............. .............. .............. ......... 27Fig. 3 : Diagrama de Moore .............. .............. .............. .............. .............. .............. ............... ........ 36Fig. 4 : Ejemplo de diagrama de Moore ............... ............... .............. .............. .............. .............. .. 37Fig. 5 : Ejemplo de mquina de Moore .............. .............. .............. ............... .............. .............. .... 40Fig. 6 : Correpondencia entre gramticas, leng. y autmatas .... .............. .............. .............. .......... 42Fig. 7 : Esquema de mquina de Turing ........ ............... .............. .............. .............. .............. ......... 43Fig. 8 : Esquema de autmata lineal acotado ............. .............. .............. .............. ............... ........... 47Fig. 9 : Esquema de autmata de pila ......... .............. .............. ............... .............. .............. ............ 50Fig. 10 : Transicin en un autmata de pila .................... .............. ............... .............. .............. ...... 51Fig. 11 : Transicin en un autmata de pila .................... .............. ............... .............. .............. ...... 52Fig. 12 : Esquema intuitivo de un autmata finito ....................... .............. .............. .............. ........ 59Fig. 13 : Transicin entre dos estados .............. .............. .............. .............. .............. ............... ....... 61Fig. 14 : Diagrama de Moore del ejemplo 15.2.4 ..... ............... .............. .............. .............. ............ 62Fig. 15 : Diagrama de Moore del ejemplo 15.2.5. ...... .............. ............... .............. .............. .......... 63Fig. 16 : Diagrama de Moore del ejemplo 15.2.6. ...... .............. ............... .............. .............. .......... 64Fig. 17 : Diagrama de Moore del ejemplo 15.2.7. ...... .............. ............... .............. .............. .......... 65Fig. 18 : Diagrama de Moore del ejemplo 15.2.8. ...... .............. ............... .............. .............. .......... 66Fig. 19 : Diagrama de Moore del ejemplo 15.3.1.1. .... .............. ............... .............. .............. ......... 68

    Fig. 20 : Diagrama de Moore del ejemplo 15.3.3.1. .... .............. ............... .............. .............. ......... 72Fig. 21 : Diagrama de Moore para f(A,a)=B ............. .............. .............. .............. ............... ........... 73Fig. 22 : Diagrama de Moore para f(A,a)=qf ............. .............. .............. .............. ............... ........... 73Fig. 23 : Diagrama de Moore del ejemplo 15.4.1 ..... ............... .............. .............. .............. ............ 74Fig. 24 : Diagrama de Moore AFD del ejemplo 15.4.1 ....... .............. .............. .............. .............. .. 76Fig. 25 : Diagrama de Moore para la expresin regular vacia ............ .............. .............. ............... 77Fig. 26 : Diagrama de Moore para la expresin regular a ............... ............... .............. .............. ... 77Fig. 27 : Diagrama de Moore para la expresin regular a* ............. .............. .............. .............. .... 77Fig. 28 : Diagrama de Moore para la expresin regular a+ ............. .............. .............. .............. .... 78Fig. 29 : Diagrama de Moore para la expresin regular a|b ............. .............. .............. .............. .... 78Fig. 30 : Diagrama de Moore para la expresin regular a|b ............. .............. .............. .............. .... 78Fig. 31 : Diagrama de Moore para la expresin regular (a|b)* ...... .............. .............. .............. ...... 78Fig. 32 : Diagrama de Moore para (ac|b)* .................. .............. ............... .............. .............. .......... 79Fig. 33 : Diagrama de Moore (acd|b)* ........................ ............... .............. .............. .............. .......... 79Fig. 34 : Construccin de Thompson para N(s|t) .................. ............... .............. .............. .............. 79

    Fig. 35 : Construccin de Thompson para st ............... .............. ............... .............. .............. ......... 80Fig. 36 : Construccin de Thompson para s* .............. .............. .............. .............. .............. .......... 80Fig. 37 : Descomposicin sintactica de la expresin regular ...................... .............. .............. ....... 80Fig. 38 : Construccin de Thompson para r7 ............. .............. .............. .............. ............... ........... 81Fig. 39 : Construccin de Thompson para la expresin regular ............. .............. .............. ........... 81Fig. 40 : Solucin del ejercicio 16.2 ......... ............... .............. .............. .............. .............. .............. 87

    - VIII -

  • 7/31/2019 AUTOMATA.unlocked

    9/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    CAPTULO 1: INTRODUCCIN

    El objetivode este libro de texto es introducir losconceptos tericos necesarios sobre

    Teora de Lenguajes Formales, Gramticas y Autmatas para un curso universitario de

    Traductores, Procesadores, Compiladores e Intrpretes de lenguajes de programacin.

    En este texto se presenta la Teora de Gramticas y Lenguajes Formales, como una

    herramienta matemtica que permite abordar con rigor el diseo de lenguajes de progra-

    macin.AdemssedesarrollanlosconceptosnecesariosparalaconstruccindeAutmatas

    para el reconocimiento de lenguajes de programacin.

    La Teora de los Lenguajes Formales tiene su origen en un campo aparentemente

    bastante alejado de la Informtica: la Lingistica.

    Los lingistas de la llamada escuela estructuralista americana haban elaborado porlos aos 50 algunas ideas informales acerca de la gramtica universal. Se entiende por

    gramtica universal, una gramtica que caracteriza las propiedades generales de cualquier

    lenguaje humano.

    El primer trabajo que desarroll teoras formales sobre gramticas y lenguajes fue

    obra de Avram Noam Chomsky (1928-), quien es sin duda la figura ms destacada de la

    lingistica moderna, tanto por desarrollar sus fundamentos matemticos, como por sus

    teoras sobre el origen y la naturaleza de los lenguajes naturales, aunque stas ltimas son

    ms discutidas (Chomsky, 1956; 1959; 1962; y 1963).

    En el campo de la Informtica, poco despus de las primeras publicaciones de

    Chomsky, el concepto de Gramtica Formal adquiri gran importancia para la especifi-

    cacin de lenguajes de programacin; concretamente, se defini con sus teoras la sintaxis

    del lenguaje ALGOL 60 (con ligeras modificacionessobre su versin primitiva), usndose

    unagramtica libre decontexto. Ellocondujorpidamenteal diseo rigurosode algoritmos

    de traduccin y compilacin.

    Finalmente, y enlazando con el campo de la lingistica, la Teora de Lenguajes

    Formales es de gran utilidad para el trabajo en otros campos de la Informtica por ejemploen Informtica Terica, Inteligencia Artificial, Procesamiento de lenguajes naturales

    (comprensin, generacin, y traduccin) y Reconocimiento del Habla.

    La Teora de los Lenguajes y Gramticas Formales tiene una relacin directa con la

    Teora de Autmatas, siendo posible establecer entre ambas una correspondencia deno-

    minada en Algebra isomorfismo.

    - 1 -

  • 7/31/2019 AUTOMATA.unlocked

    10/106

  • 7/31/2019 AUTOMATA.unlocked

    11/106

  • 7/31/2019 AUTOMATA.unlocked

    12/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Ejemplos 2.3.1

    Se utilizan los vocabularios de los ejemplos del epgrafe 2.2.1.

    abcb es una cadena del alfabeto V2a+2*b es una cadena del alfabeto V2000111 es una cadena del alfabeto V3ifa>b then b=a; es una cadena del alfabeto V4

    2.4 Longitud de cadena

    La longitud de una cadena es el nmero de smbolos que contiene. La notacin

    empleada es la que se indica en los siguientes ejemplos.

    Ejemplos 2.4.1

    Se utilizan las cadenas de los ejemplos del epgrafe 2.3.1.

    2.5 Cadena vaca

    Existe una cadena denominada cadena vaca, que no tiene smbolos y se denota con

    , entonces su longitud es :

    2.6 Concatenacin de cadenas

    Sean y dos cadenas cualesquiera, se denomina concatenacin de y a una

    nueva cadena constituida por los smbolos de la cadena seguidos por los de la cadena

    .

    El elemento neutro de la concatenacin es :

    | abcb | 4

    | a + 2*b | 5

    | 000111 | 6

    | ifa > b then a = b ; | 9

    | | 0

    = =

    - 4 -

  • 7/31/2019 AUTOMATA.unlocked

    13/106

  • 7/31/2019 AUTOMATA.unlocked

    14/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    100001

    001100

    1101011

    0010100

    2.9 Lenguaje vacio

    Existe un lenguaje denominado el lenguaje vaco, que es un conjunto vaco y que se

    denota por { }. El lenguaje vaco no debe confundirse con un lenguaje que contenga una

    sola cadena, y que sta sea la cadena vacia, es decir { }, ya que el nmero de elementos

    (cardinalidad) de estos dos conjuntos es diferente.

    Cardinal ({ }) = 0

    Cardinal ({ }) = 1

    2.10 Gramtica

    La gramtica es un ente formal para especificar, de una manera finita, el conjunto de

    cadenas de smbolos que constituyen un lenguaje.

    2.11 Autmata

    Un autmata es una construccin lgica que recibe una entrada y produce una salida

    en funcin de todo lo recibido hasta ese instante.

    En el caso de los Procesadores de Lenguaje un autmata es una construccin lgica

    que recibe como entrada una cadena de smbolos y produce una salida indicando si dicha

    cadena pertenece o no a un determinado lenguaje.

    - 6 -

  • 7/31/2019 AUTOMATA.unlocked

    15/106

  • 7/31/2019 AUTOMATA.unlocked

    16/106

  • 7/31/2019 AUTOMATA.unlocked

    17/106

    DEFINICIN FORMAL DE GRAMTICA

    VN = { , , , }

    VT = { 0, 1 }

    S =

    Las reglas de produccin P son :

    ::=

    ::= |

    ::=

    ::=

    3.5 Notacin

    Se usar la que se describe a continuacin, por ser la ms extendida en la bibliografa

    Aho y Ullman (1973a, 1973b), Hopcroft y Ullman (1979), Aho et al. (1986), Sanchs y

    Morales (1986), Alfonseca et al. (1987), y Snchez y Valverde (1989).

    3.5.1 Vocabulario terminal

    Los elementos del vocabulario terminal se representan por :

    - letras minsculas de comienzo del abecedario : a, b, c, . . . , g.

    - operadores tales como : + , - , * , / , . . .

    - caracteres especiales : # , @ , ( , ) , . , ; , . . .

    - los dgitos : 0, 1, . . . , 9

    - las palabras reservadas de lenguajes de programacin con letras minsculas

    y en negrita : if, then, else, . . .

    3.5.2 Vocabulario no terminal

    Los elementos del vocabulario no terminal se representan por :

    - letras maysculas de comienzo del abecedario : A, B, . . . , G. La nica

    excepcin suele ser el smbolo inicial que se representa con S.

    - nombres en minscula, pero encerrados entre parntesis angulares : , , . . .

    3.5.3 Vocabulario

    Los elementos indiferenciados del vocabulario terminal y no terminal se denotan

    con :

    0 | 1

    - 9 -

  • 7/31/2019 AUTOMATA.unlocked

    18/106

  • 7/31/2019 AUTOMATA.unlocked

    19/106

    RELACIONES ENTRE CADENAS

    CAPTULO 4: RELACIONES ENTRE CADENAS

    Eneste captulo se muestran las relaciones de derivacin directa y dederivacinentre

    las cadenas de un determinado lenguaje descrito por una gramtica.

    4.1 Relacion de derivacin directa

    Sea una gramtica G = (VN,VT,S,P), si es una produccin, es decir

    y es una cadena, es decir , entonces las cadenas y estn en la

    relacin de derivacin directa de la gramtica G, que se puede expresar por:

    ysepuede decir quela cadena deriva directamentedela , o bien que produce

    directamente en lagramtica G. De ah el nombrede produccionespara los elementos

    de P.

    Ejemplo 4.1.1

    Sea la gramtica : G = ( VT, VN, S, P) donde VT = {a, b}, VN = {S}, y el conjunto

    de producciones es :

    Se obtiene la siguiente derivacin directa, al sustituir la primera regla en la segunda :

    4.2 Relacion de derivacin

    Sean y cadenas pertenecientes a V+, se dice que estn en relacin de derivacin

    en la gramtica G si existen tales que :

    ( ) P

    V+

    S ab

    S aSb

    S aabb

    1 m

    1,2,3,...,m

    - 11 -

  • 7/31/2019 AUTOMATA.unlocked

    20/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    . . .

    se escribir entonces:

    dicindose que deriva de , o que produce .

    Ejemplo 4.2.1

    Sea la gramtica G = ({S, A, B}, {a, b, c, d}, S, P) donde P son las siguientes reglas

    de produccin, que en este caso se numeran para su posterior identificacin cuando se

    usen.

    (1)

    (2)

    (3)

    (4)

    (5)

    (6)

    Por aplicacin de derivaciones inmediatas a partir del smbolo inicial se obtiene la

    derivacin :

    Las derivaciones inmediatas necesarias para llegar a la derivacin anterior se

    muestran a continuacin, indicndose en cada paso el nmero de la regla aplicada.

    1 2

    2 3

    3 4

    (m 1) m

    1 m

    m 1 1 m

    S ASB

    A b

    aaA aaBB

    S d

    A aA

    B dcd

    S abddcd

    S (1)

    ASB (5)

    aASB (2)

    abSB (4)

    abdB (6)

    abddcd

    - 12 -

  • 7/31/2019 AUTOMATA.unlocked

    21/106

  • 7/31/2019 AUTOMATA.unlocked

    22/106

  • 7/31/2019 AUTOMATA.unlocked

    23/106

    DEFINICIN FORMAL DE LENGUAJE

    Ejemplo 6.4

    SealagramticaG4 = ({S}, {a,b}, S,P)dondeP={(S aSb), (S ab)}.Determinar

    el lenguaje que genera.

    Solucin : Aplicando la primera produccin n-1 veces, seguida por la aplicacin de

    la segunda produccin, se tiene que :

    El lenguaje generado :

    L(G4)={anbn/n 1}

    Ejemplo 6.5

    Dada la gramtica G5 = ({S,A}, {a,b}, S, P) donde P={(S abAS), (abA baab),

    (S a), (A b)}. Determinar el lenguaje que genera.

    Solucin : Segeneran sentencias del lenguajeaplicandolas reglas hasta quesepueda

    ver la forma general del lenguaje.

    L(G5) = {cadenas que contienen abb y baab intercambindose y reproducindose

    cualquier nmero de veces, y terminando siempre con el smbolo a}

    Se puede observar que la forma de expresar este lenguaje no es simple, y surge la

    necesidad de tener una herramienta que permita describir los lenguajes de otra forma.

    Ejemplo 6.6

    Sea la gramtica G6 = ({S,A,B}, {a,b}, S, P) donde las producciones P son :

    S aSb aaSbb a 3Sb 3 a (n 1)Sb (n 1) a nb n

    S abAS baabS baaba

    S a

    S abAS abbS abba

    S abAS abAabAS (abA)nS (abb)na

    S abAS abAabAS (abA)nS (baab)naS abAS abAabAS abbbaaba

    S abAS abAabAS baababba

    S abAS abAabAS abAabAabAS baababbbaaba

    - 15 -

  • 7/31/2019 AUTOMATA.unlocked

    24/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Determinar el lenguaje que genera.

    Solucin : Se generan algunas instrucciones.

    Se puede demostrar (Hopcroft y Ullman (1979), pp. 81-82) que el lenguaje generado

    es :

    L(G6) = {cadenas que tienen igual n de a que de b}

    La demostracin no es inmediata.

    Ejemplo 6.7

    Sea la gramtica G7 = (VN, VT, S, P) donde :

    VN = { , }

    VT = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }

    S =

    Las reglas de produccin P son :

    ::=

    ::=

    ::=

    Determinar el lenguaje que genera.Solucin : A continuacin se muestran algunas sentencias del lenguajegeneradopor

    esta gramtica.

    S aB A bAA

    S bA B b

    A a B bS

    A aS B aBB

    S aB ab

    S bA ba

    S aB abS abbA abba

    S bA bbAA bbaa

    S aB abS abaB ababS ababaB ababab

    0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

    - 16 -

  • 7/31/2019 AUTOMATA.unlocked

    25/106

    DEFINICIN FORMAL DE LENGUAJE

    L(G7) = {conjunto de los nmeros naturales en base diez}.

    Ejemplo 6.8

    Sea la gramtica G8 = ({A,S}, {a,b}, S, P) donde las reglas de produccin son :

    Determinar el lenguaje que genera esta gramtica.

    Solucin : Se muestran algunas sentencias del lenguaje generado por la gramtica.

    El lenguaje generado se puede definir con la siguiente expresin regular, cuya

    definicin se estudiar en el captulo 9.

    L(G8) = a a*b b*

    < nmero >< dgito >< nmero > 7 < nmero > 72

    < nmero >< dgito > 7

    < nmero >< dgito > 0

    < nmero >< dgito >< nmero >< dgito >< dgito >< nmero > 235

    S aS

    S aA

    A bA

    A b

    S aS aaA aab

    S aA ab

    S aS aaS aaaS a nS a naA a n + 1b

    S aA abA abbA abbbA ab nA ab n + 1

    - 17 -

  • 7/31/2019 AUTOMATA.unlocked

    26/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    CAPTULO 7: JERARQUA DE LAS GRAMTICAS

    Chomsky defini cuatro tipos distintos de gramticas en funcin de la forma de las

    reglas de derivacin P (Chomsky, 1959). La clasificacin comienza con un tipo de

    gramticas que pretende ser universal, aplicando restricciones a sus reglas de derivacinse van obteniendo los otros tres tipos de gramticas. Esta clasificacin es jerrquica, es

    decir cada tipo de gramticas engloba a todos los tipos siguientes.

    7.1 Gramticas de tipo 0

    Tambin llamadas gramticas no restringidas o gramticas con estructura de frase.

    Las reglas de derivacin son de la forma:

    siendo y , es decir la nica restriccin es que no puede

    haber reglas de la forma donde es la cadena vacia.

    7.1.1 Ejemplos

    Todas las gramticas mostradas en los ejemplos del captulo 6 son de tipo 0, pues en

    ninguna de ellas existe la produccin siendo la cadena vacia.

    7.2 Gramticas de tipo 1

    Tambien llamadas gramticas sensibles al contexto (en ingls context sensitive). En

    ellas las reglas de produccin son de la forma :

    siendo A VN; y .

    Estas gramticas se llaman sensibles al contexto, pues se puede reemplazar A por

    siempre que estn en el contexto .

    7.2.1 Ejemplos de gramticas de tipo 1

    A continuacin se muestran varios ejemplos de gramticas de tipo 1, que se adaptan

    a la definicin anterior.

    (VN VT)+ (VN VT)*

    A

    , (VN VT)* (VN VT)+

    - 18 -

  • 7/31/2019 AUTOMATA.unlocked

    27/106

    JERARQUA DE LAS GRAMTICAS

    Ejemplo 7.2.1.1

    La gramtica G = ({S,A,B}, {a,b}, S, P) cuyas producciones P se muestran a conti-

    nuacin es de tipo 1.

    Ejemplo 7.2.1.2

    La gramtica G = (VN, VT, S, P) donde VN = { , }; VT = { 0,

    1, 2, 3, 4, 5, 6, 7, 8, 9 }; S = y las reglas de produccin P que se muestran a

    continuacin es de tipo 1.

    ::=

    ::=

    ::=

    Ejemplo 7.2.1.3

    La gramtica G = ({a,b}, {A,S}, S, P) donde P son las producciones que se muestran

    a continuacin es de tipo 1.

    7.2.2 Ejemplos de gramticas que No son de tipo 1

    A continuacin se muestran algunos ejemplos de gramticas que no son de tipo 1, y

    que pueden ilustrar mejor la definicin de estas gramticas.

    Ejemplo 7.2.2.1

    La gramtica definida como G = ({S}, {a,b}, S, P) donde P son las siguientes

    producciones :

    S aB A bAA

    S bA B b

    A a B bS

    A aS B aBB

    0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

    S aS

    S aA

    A bA

    A b

    - 19 -

  • 7/31/2019 AUTOMATA.unlocked

    28/106

  • 7/31/2019 AUTOMATA.unlocked

    29/106

  • 7/31/2019 AUTOMATA.unlocked

    30/106

  • 7/31/2019 AUTOMATA.unlocked

    31/106

  • 7/31/2019 AUTOMATA.unlocked

    32/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    tipo 1 , con la condicin de , para cumplir la propiedad de no

    decrecimiento.Si se aade ser necesario imponer la condicin de que no aparezca

    en la parte derecha S, tal y como se ver en el teorema 7.5.1

    Teorema 7.5.1

    Si G es una gramtica de tipo 1, 2, o 3 puede encontrarse una gramtica equivalente

    G de tipo 1, 2 o 3 respectivamente, tal que L(G)=L(G) y adems su smbolo inicial S,

    no aparece en el segundo trmino de ninguna regla de G. Es decir si G=(VT,VN,P,S)

    se puede encontrar G=(VT,VN*,P,S) donde P=P . La

    demostracin se puede encontrar en las pginas 437-438 del libro Fundamentos de

    Informtica, Fernndez G. y Sez Vacas F.).

    Corolario 7.5.2

    Si L es un lenguaje de tipo 1, 2 o 3 entonces y son lenguajes de tipo

    1, 2, o 3 respectivamente.

    Corolario 7.5.3

    DadaunagramticaGcualquieradetipo1,2o3sepuedeobtenerotraG,con

    de forma que .

    7.6 Relacin de inclusin

    Los cuatro tipos de gramticas estudiados anteriormente (tipo 0, tipo 1, tipo 2, y tipo

    3), cada una de ellas tiene restricciones ms fuertes que las anteriores. Las gramticas de

    tipo 0, contienen a todas las dems. Las de tipo 1 contienen a las de tipo 2 y tipo 3. Y por

    ltimo las de tipo 2 contienen a las de tipo 3. Es decir una gramtica de tipo 3 es de tipo

    2,tipo1ytipo0.Porlotantosedefineuna jerarquade gramticas respectode la relacin

    de inclusin, que se puede representar grficamente mediante el diagrama de la figura 1.

    A S

    {S /(S ) P}

    L {} L {}

    S

    L(G) = L(G){}

    - 24 -

  • 7/31/2019 AUTOMATA.unlocked

    33/106

    JERARQUA DE LAS GRAMTICAS

    Fig. 1 : Relacin de inclusin entre los distintos tipos de gramticas

    JERARQUIA DE LAS GRAMATICAS

    TIPO 0 TIPO 1 TIPO 2 TIPO 3

    - 25 -

  • 7/31/2019 AUTOMATA.unlocked

    34/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    CAPTULO 8: CORRESPONDENCIA ENTRE

    GRAMTICAS Y LENGUAJES

    Se denomina lenguaje de tipo 0 al generado por una gramtica de tipo 0. De la misma

    forma, se denominan lenguajes de tipo 1, tipo2, y tipo3, a los generados por las gramticas

    de tipo 1, tipo 2, y tipo 3, respectivamente.

    Si los lenguajes generados por los distintos tipos de gramticas se se relacionan entre

    s con respecto a la relacin de inclusin se obtiene :

    {L(G3)} {L(G2)} {L(G1)} {L(G0)}

    Segn lo visto anteriormente existe una correspondencia entre las gramticas y los

    lenguajes de tal forma que se genera una jerarqua de lenguajes anloga a la mostrada para

    las gramticas, que se puede representar grficamente mediante el diagrama de la figura2.

    - 26 -

  • 7/31/2019 AUTOMATA.unlocked

    35/106

    CORRESPONDENCIA ENTRE GRAMTICAS Y LENGUAJES

    Fig. 2 : Correspondencia entre gramticas y lenguajes

    TIPO 0 TIPO 1 TIPO 2 TIPO 3

    LENGUAJES

    GRAMATICAS

    CORRESPONDENCIA ENTRE

    LOS LENGUAJES Y LAS GRAMATICAS

    TIPO 0 TIPO 1 TIPO 2 TIPO 3

    - 27 -

  • 7/31/2019 AUTOMATA.unlocked

    36/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    CAPTULO 9: EXPRESIONES REGULARES

    Anteriormente se estudiaron los lenguajes formales, y se vio como en algunos

    ejemplosno era fcil representar los lenguajes de una maneracondensada.En este captulo

    se va a presentar una herramienta, las expresiones regulares, para describir lenguajes detipo 3 o lenguajes regulares.

    Las expresiones regulares se introducen para describir los lenguajes regulares,

    entonceslasexpresionesregulares sern metalenguajes. Es decir las expresionesregulares

    son un metalenguaje para describir los lenguajes regulares.

    9.1 Operaciones con los lenguajes regulares

    a) Unin o alternativa : Sean dos lenguajes definidos sobre un mismo alfabeto, se

    denominaunin de los dos lenguajes al conjunto formado por las cadenas que pertenezcan

    indistintamente a uno u otro de los dos lenguajes. Formalmente se puede expresar :

    b) Concatenacin : Sean dos lenguajes definidos sobre el mismo alfabeto, se

    denomina concatenacin de los dos lenguajes al conjunto de todas las cadenas formadas

    concatenandounapalabra del primer lenguajeconotra del segundo.Formalmentesepuede

    expresar :

    c) Potencia de un lenguaje : Desde un punto de vista estricto esta no es una nueva

    operacin, sino un caso particular de la anterior. Se denomina potencia i-sima de un

    lenguaje a la operacin que consiste en concatenarlo consigo mismo i-veces. En el caso

    de i=0, el resultado es el conjunto vacio.

    d) Cierreuoperacinestrella : Laoperacin cierre deunlenguajeL esotro lenguaje

    L* obtenido uniendo el lenguaje L con todas sus potencias posibles, incluso L0. Formal-

    mente se puede expresar como :

    e) Cierre positivo : La operacin cierre positivo de un lenguaje L es otro lenguaje

    L+ obtenido uniendo el lenguaje L con todas sus potencias posibles, excepto L 0. Formal-

    mente se puede expresar como :

    L1 L2 = {x/x L1 x L2}

    L1L2 = {x1x2/x1 L1 x2 L2}

    L* = {} {L} {LL} {LLL} =

    n = 0

    Ln

    - 28 -

  • 7/31/2019 AUTOMATA.unlocked

    37/106

    EXPRESIONES REGULARES

    9.2 Operaciones con las expresiones regularesSi es una expresion regular, entonces es el conjunto descrito por la expresin

    regular . Tambin se puede decir que denota el lenguaje de la cadena .

    Las expresiones regulares describen los lenguajes regulares, luego sus operaciones

    corresponderan a las indicadas para los lenguajes regulares.

    a) Unin o alternativa : Si y son expresiones regulares, es una expresion

    regular tal que :

    es decir puede aparecer o indistintamente.

    b) Concatenacin : Si y son expresiones regulares, es una expresin regular

    tal que

    c) Cierre u operacin estrella : Si es una expresin regular, entonces es una

    expresin regular que denota { }*. Es decir denota las cadenas :

    d) Cierre positivo : Si es una expresin regular, entonces es una expresin

    regular que denota { }+

    . Es decir denota las cadenas :

    L+ = {L} {LL} {LLL} =

    n = 1

    Ln

    {}

    |

    { | } = {} {}

    { } = {} {}

    *

    +

    - 29 -

  • 7/31/2019 AUTOMATA.unlocked

    38/106

  • 7/31/2019 AUTOMATA.unlocked

    39/106

  • 7/31/2019 AUTOMATA.unlocked

    40/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Ejemplo 9.10

    Dada la expresin regular , el lenguaje que denota es el que se puede formar

    con todas las cadenas compuestas por a y b incluida la cadena vacia. Algunos ejemplos

    de sentencias de este lenguaje son :

    aaa

    bbb

    aba

    abaaa

    abbaa

    Ejemplo 9.11

    Sea el vocabulario {1,2,3}, la expresin regular indica el conjunto de todas

    las cadenas formadas con los smbolos 1 y 2, sucedindose cualquier n de veces (y en

    cualquier orden), y siempre terminando la cadena enel smbolo 3. Ejemplosde sentencias :

    3 23

    13 223

    123 113

    11113 121211223221113 111212213

    Ejemplo 9.12

    Sea el vocabulario {a,b,c}, la expresin regular a bc denota el lenguaje formado

    por las sentencias a y bc.

    Ejemplo 9.13

    Sea el vocabulario {a,b}, la expresin regular denota el lenguaje

    compuesto por todas las cadenas cuya longitud es cero o un n par, y estn compuestas

    solamente por el smbolo a, el smbolo b, o por smbolos a y b.

    (a | b)*

    (1 | 2)* 3

    |

    ((a | b) (a | b))*

    - 32 -

  • 7/31/2019 AUTOMATA.unlocked

    41/106

    EXPRESIONES REGULARES

    Ejemplo 9.14

    Sea el vocabulario {a,b}, la expresin regular (a b)(a b) denota el lenguaje com-

    puesto por todas las cadenas de longitud dos formadas con los smbolos a y b. Se pueden

    definir por enumeracin {aa, ab, ba, bb}.

    Ejemplo 9.15

    Dar una expresin regular para identificador:

    Tambin se puede definir identificador como:

    Ejemplo 9.16

    Dar una expresin regular para los nmeros reales sin exponente del lenguaje Pascal

    estndar.

    Solucin :

    Ejemplo 9.17

    La expresin regular denota el lenguaje .

    | |

    ( | )*

    (a | b | c | | z) (a | b | c | d | | z | 0 | 1 | | 9)*

    ( | + | ) (< dgito >< dgito >* < dgito >*< dgito >)

    a*b

    * {amb n/m 0 y n 0}

    - 33 -

  • 7/31/2019 AUTOMATA.unlocked

    42/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    CAPTULO 10: AUTMATAS

    La palabra autmata evoca algo que pretende imitar las funciones propias de los

    seres vivos, especialmente relacionadas con el movimiento, por ejemplo el tpico robot

    antropomorfo. En el campo de los Traductores, Procesadores, Compiladores e Intrpretes,lo fundamental no es la simulacin del movimiento, sino la simulacin de procesos para

    tratar informacin.

    La informacin se codifica en cadenas de smbolos, y un autmata es un dispositivo

    que manipula cadenas de smbolos quese le presentana su entrada, produciendo otras tiras

    o cadenas de smbolos a su salida.

    El autmata recibe los smbolos de entrada, uno detrs de otro, es decir secuencial-

    mente. El smbolo de salida que en un instante determinado produce un autmata, no slo

    depende del ltimo smbolo recibido a la entrada, sino de toda la secuencia o cadena, que

    ha recibido hasta ese instante.

    Todoloanteriorconduceadefinirunconceptofundamental : estadodeunautmata.

    El estado de un autmata es toda la informacin necesaria en un momento dado, para

    poderdeducir,dado un smbolo de entradaen ese momento,cual ser el smbolode salida.

    Es decir, conocer el estado de un autmata, es lo mismo que conocer toda la historia de

    smbolos de entrada, as como el estado inicial, estado en que se encontraba el autmata

    al recibir el primero de los smbolos de entrada.

    El autmata tendr un determinado nmero de estados (pudiendo ser infinitos), y se

    encontrar en uno u otro segn sea la historia de smbolos que le han llegado.

    Se define configuracin de un autmata a su situacin en un instante. Se define

    movimiento de un autmata como el transito entre dos configuraciones.

    Si un autmata se encuentra en un estado determinado, recibe un smbolo tambin

    determinado, producir un smbolo de salida y efectuar un cambio o transicin a otro

    estado (tambin puede quedarse en el mismo estado).

    El campo de estudio de los Traductores, Procesadores e Intrpretes son los lenguajesy las gramticas que los generan. Los elementos del lenguaje son sentencias, palabras,

    etc... formadas a partir de un alfabeto o vocabulario, que no es otra cosa que un conjunto

    finito de smbolos. Establecidas las reglas gramaticales, una cadena de smbolos

    pertenecer al correspondiente lenguaje si tal cadena se ha formado obedeciendo esas

    reglas. Entonces un autmata reconocedor de ese lenguaje, funciona de tal forma que

    - 34 -

  • 7/31/2019 AUTOMATA.unlocked

    43/106

    AUTMATAS

    cuando reciba a su entrada una determinada cadena de smbolos indica si dicha cadena

    pertenece o no al lenguaje. Tambin se mostrar como existe un tipo de autmata para

    reconocercadaunodelostiposdelenguajesgeneradosporlascorrespondientesgramticas.

    10.1 Definicin formal de autmata

    Un autmata es una quntupla A = ( E, S, Q, f, g ) donde :

    E = {conjunto de entradas o vocabulario de entrada}

    S = {conjunto de salidas o vocabulario de salida}

    Q = {conjunto de estados}

    E es un conjunto finito, y sus elementos se llaman entradas o smbolos de entrada.

    S es un conjunto finito, y sus elementos se llaman salidas o smbolos de salida.

    Q es el conjunto de estados posibles, puede ser finito o infinito.

    feslafuncin de transicino funcin del estado siguiente, y para un par del conjunto

    E Q devuelve un estado perteneciente al conjunto Q. E Q es el conjunto producto

    cartesiano de E por Q.

    g es la funcin de salida, y para un par del conjunto E Q, devuelve un smbolo de

    salida del conjunto S.

    10.2 Representacin de autmatas

    Los autmatas se pueden representar mediante :

    - Tabla de transiciones

    - Diagrama de Moore

    10.2.1 Tabla de transiciones

    Las funciones f y g pueden representarse mediante una tabla, con tantas filas como

    estadosy tantascolumnascomo entradas. Aspor ejemplo sepuede representarel autmata

    A = ( E, S, Q, f, g ) donde E = {a,b}, S = {0,1}, Q = {q1, q2, q3} y las funciones f y g se

    pueden representar por :

    f : E Q Q

    g : E Q S

    - 35 -

  • 7/31/2019 AUTOMATA.unlocked

    44/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    f a b g a b

    q1 q1 q2 q1 0 1

    q2 q3 q2 q2 0 0q3 q3 q1 q3 1 0

    As se tiene que ; ; o tambin ; y .

    Ambas funciones tambin se pueden representar en una misma tabla de la siguiente

    forma :

    f / g a b

    q1 q1/0 q2/1

    q2 q3/0 q2/0

    q3 q3/1 q1/0

    10.2.2 Diagramas de Moore

    Los diagramas de Moore son otra forma de representar las funciones de transicin y

    salida de un autmata.

    El diagrama de Moore es un grafo orientado en el que cada nodo corresponde a un

    estado;y sif( , qi) = qj y g( , qi) = sexisteunarcodirigidodelnodoqi alcorrespondienteqj, sobre el que se pone la etiqueta / s, tal y como se muestra en la figura 3.

    Fig. 3 : Diagrama de Moore.

    As continuando con el ejemplo del apartado 10.2.1, el autmata se representa con

    el diagrama de Moore de la figura 4.

    f(a , q1) = q1 g(a , q1) = 0 f(a , q2) = q3 g(a , q3) = 1

    /s

    qqi j

    - 36 -

  • 7/31/2019 AUTOMATA.unlocked

    45/106

    AUTMATAS

    Fig. 4 : Ejemplo de diagrama de Moore.

    10.3 Mquinas de Moore y Mealy

    El modelo general de autmata que se ha definido se llama mquina de Mealy.

    Sepuedeplantearel siguiente problema : si seconsideraque ademsde loselementosdel vocabulario de entrada E, un elemento vacio , que fsicamente indica que no hay

    entrada, se han de ampliar los dominios de las definiciones de la siguiente forma :

    La ampliacin del dominio f no plantea ningn problema, pues se puede convenir

    que f( ,q)=q, es decir si no hay entrada, no se cambia de estado.

    No ocurre lo mismo con la ampliacin del dominio de g, ya que g( ,q), produce

    una salida indeterminada, pues depende del estado anterior al q. As por ejemplo en el

    autmata del apartado 10.2.1, se observa que :

    g( ,q2)=1, si el estado anterior es q1.

    g( ,q2)=0, si el estado anterior es q2.

    a/0

    b/0

    a/1a/0

    b/0

    b/1

    q

    qq

    1

    2 3

    f : {E {}} Q Q

    g : {E {}} Q S

    - 37 -

  • 7/31/2019 AUTOMATA.unlocked

    46/106

  • 7/31/2019 AUTOMATA.unlocked

    47/106

  • 7/31/2019 AUTOMATA.unlocked

    48/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 5 : Ejemplo de mquina de Moore.

    10.4 Estados accesibles de un autmata

    SeaunautmataA=(E,S,Q,f,g),sedicequeunestadoqj es accesible desde otroestado

    qi, si existe una entrada e E* tal que f(qi,e)=qj.

    Evidentemente todo estado es accesible desde s mismo, puesto que f(qi, )=qi.

    10.5 Autmatas conexos

    Sea un autmata A=(E,S,Q,f,g), se dice que es conexo si todos los estados de Q son

    accesibles desde el estado inicial q0.

    Dado un autmata no conexo se puede encontrar otro equivalente y conexo elimi-

    nando los estados inaccesibles. Es evidente que los dos autmatas aceptarn el mismo

    lenguaje.

    10.6 Autmatas deterministas y no deterministas

    Se denomina autmata determinista cuando la funcin de cambio de estado f es

    determinista. En caso contrario se dice no determinista.

    q

    qq

    q q

    a

    a

    a

    a

    a

    b

    b

    b

    b

    b

    3

    1

    1

    0

    0

    3

    2

    1

    0

    2

    - 40 -

  • 7/31/2019 AUTOMATA.unlocked

    49/106

  • 7/31/2019 AUTOMATA.unlocked

    50/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 6 : Correspondencia entre gramticas, lenguajes y autmatas.

    TIPO 0 TIPO 1 TIPO 2 TIPO 3

    LENGUAJES

    GRAMATICAS

    CORRESPONDENCIA ENTRE LOS LENGUAJES

    LAS GRAMATICAS Y LOS AUTOMATAS

    TIPO 0 TIPO 1 TIPO 2 TIPO 3

    AUTOMATAS

    TIPO 0 TIPO 1 TIPO 2 TIPO 3

    - 42 -

  • 7/31/2019 AUTOMATA.unlocked

    51/106

    MQUINAS DE TURING

    CAPTULO 12: MQUINAS DE TURING

    Su nombre se debe a Alan Mathison Turing, que fu quien introdujo el concepto en

    1936 (A. M. Turing, 1936; C. Conde, 1969; J.E. Hopcroft, 1984). Una mquina de Turing

    o autmata de tipo 0 es una construccin lgica, que se puede representar intuitivamentecomo un dispositivo mecnico (fig. 7), formado por una cinta infinita, dividida en celdas,

    y un cabezal de lectura/escritura que se mueve sobre dicha cinta, avanzando una celda de

    cada vez. En la figura 7 se representa el caso particular de un conjunto de smbolos en la

    cinta formados por 0 y 1.

    Un movimiento de la mquina de Turing, depende del smbolo explorado con la

    cabeza, y del estado actual en el que se encuentra la mquina, el resultado puede ser :

    a) Cambio de estado

    b) Imprime un smbolo en la cinta reemplazando el smbolo ledo.

    c) Se mueve la cabeza de la cinta a la izda, a la derecha o se para.

    Pueden darse los tres fenmenos anteriores, juntos o separados.

    Formalmente una mquina de Turing es un autmata, y como todo autmata est

    formado por una quntupla MT = (E, S, Q, f, g) sin embargo suele usarse la notacin

    equivalente :

    Fig. 7 : Esquema de mquina de Turing.

    donde :

    MT = (Q,,,, q0, B, F)

    0000 011 1 1 1 1 1 1 1 1

    CINTA

    CABEZA DE LECTURA / ESCRITURA

    MOVIMIENTO A IZQUIERDA MOVIMIENTO A DERECHA

    CELDA

    - 43 -

  • 7/31/2019 AUTOMATA.unlocked

    52/106

  • 7/31/2019 AUTOMATA.unlocked

    53/106

  • 7/31/2019 AUTOMATA.unlocked

    54/106

  • 7/31/2019 AUTOMATA.unlocked

    55/106

    AUTMATAS LINEALES ACOTADOS

    CAPTULO 13: AUTMATAS LINEALES ACOTADOS

    Los autmatas de tipo 1 sonlosautmatas limitados linealmente o autmatas lineales

    acotados, en ingls linear bounded automaton. Un autmata linealacotado es unamquina

    de Turing que satisface las siguientes condiciones :

    a) El alfabeto de entrada incluye dos smbolos especiales # y $, que son las

    marcas fin de cinta, izquierda y derecha respectivamente.

    b) La cabeza del autmata no puede desplazarse fuera de los limites izquierdo

    y derecho de la cinta, y no puede imprimir otro smbolo sobre # y $.

    Un autmata lineal acotado se puede representar por el diagrama de la figura 8. Se

    representa el caso particular de que los smbolos de la cinta son 0 y 1.

    Fig. 8 : Esquema de autmata lineal acotado.

    Un autmata lineal acotado se puede definir formalmente como una mquina de

    Turing con dos smbolos lmite de la cinta.

    donde Q, , q0, y F significan lo mismo que en la mquina de Turing; # y $ sonsmbolos de , correspondientes a la marca izquierda y derecha de la cinta.

    El lenguaje aceptado por un autmata lineal acotado, es :

    L(ALA) = { W / W { - {#,$}}* y q0#W$ para algn q F}

    0000 011 1 1 1 1 1

    CINTA

    CABEZA DE LECTURA / ESCRITURA

    MOVIMIENTO A IZQUIERDA MOVIMIENTO A DERECHA

    CELDA

    # $

    ALA = (Q,,,, q0, #, $, F}

    ,,

    q

    - 47 -

  • 7/31/2019 AUTOMATA.unlocked

    56/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Ntese que las marcas fin de cinta y comienzo de cinta no son consideradas como

    parte de la sentencia a reconocer. Un autmata lineal acotado no puede moverse fuera de

    la cadena de entrada.

    13.1 Teorema

    Para toda gramtica sensible al contexto G1 existe un autmata reconocedor lineal

    acotado RALA, tal que el lenguaje generado por la gramtica L(G1), es reconocido por el

    autmata RALA.

    L(G1)=L(RALA)

    13.2 Teorema

    Si L(RALA) es el lenguaje reconocido por un autmata lineal acotado, existe unagramtica sensible al contexto G1, tal que el lenguaje reconocido por el autmata es igual

    al generado por la gramtica.

    L(RALA)=L(G1)

    13.3 Corolario

    De los dos teoremas anteriores se deduce que existe una correspondencia entre las

    gramticas de tipo 1, los lenguajes de tipo 1, y los autmatas lineales acotados.

    - 48 -

  • 7/31/2019 AUTOMATA.unlocked

    57/106

  • 7/31/2019 AUTOMATA.unlocked

    58/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 9 : Esquema de un autmata de pila.

    Un autmata de pila se puede definir formalmente como una sptupla :

    donde :

    - Q es el conjunto finito de estados.

    - es el alfabeto de entrada, es finito.

    - es el alfabeto de pila.

    - es la funcin de transicin, y es una aplicacin de la forma :

    - q0 es el estado inicial, y cumple q0 Q.

    - Z0 esel smbolo inicial que contine la pila antes de comenzar, evidentemente

    Z0 .- F es el conjunto de estados finales, evidentemente F Q.

    Tal y como ha sido definida la funcin de transicin , el autmata es en general no

    determinista. Se entiende por no determinista, cuando el resultado de la funcin no est

    determinado, es decir pueden resultar dos o ms valores, sin que la funcin precise cual

    va a tomar de ellos.

    000011 1

    CINTA

    PILACONTROL DE ESTADOS

    Q

    Z

    MOVIMIENTO DE LA CINTA

    AP = (Q,,,, q0, Z0, F)

    : Q { {}} Q *

    - 50 -

  • 7/31/2019 AUTOMATA.unlocked

    59/106

  • 7/31/2019 AUTOMATA.unlocked

    60/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 10 : Transicin en un autmata de pila.

    El autmata pasa de la configuracin a la configuracin , es

    decirpasaa unestado q,avanzandolacabeza delectura al siguientesmboloy procediendo

    a realizar determinadas sustituciones en la cabeza de la pila (fig. 11).

    Fig. 11 : Transicin en un autmata de pila.

    14.1 Lenguaje reconocido por un autmata de pila

    Se puede definir de dos formas :

    a ) El autmata reconoce una cadena de entrada, cuando alcanza el estado final, es

    decir el lenguaje reconocido por un autmata de pila se puede expresar de la siguiente

    forma :

    b ) El autmata reconoce la cadena cuando la pila queda vacia, independientementedel estado al que se llegue, entonces el lenguaje reconocido por el autmata es :

    Se puededemostrar que ambas definicionesde L(AP), sonequivalentes, en el sentido

    de que la clase de lenguajes aceptados por los autmatas de pila es la misma en ambos

    casos.

    (q , aW,z) (q, W,)

    CINTA

    PILACONTROL DE ESTADOS

    MOVIMIENTO DE LA CINTA

    a W

    q

    L(AP) = {W/W * y (q0,W,Z0) (qf,,)}

    L(AP) = {W/W * y (q0,W,Z0) (q,,)}

    - 52 -

  • 7/31/2019 AUTOMATA.unlocked

    61/106

    AUTMATAS DE PILA

    14.1.1 Teorema

    Para toda gramtica libre de contexto G2, existe un reconocedor constituido por un

    autmata de pila RAP, tal que el lenguaje generado por la gramtica L(G2) es reconocido

    por el autmata RAP.

    L(G2)=L(RAP)

    14.1.2 Teorema

    Para todo reconocedor constituido por un autmata de pila RAP, existe una gramtica

    libre de contexto G2, tal que el lenguaje reconocido por el autmata es igual al generado

    por la gramtica.

    L(RAP)=L(G2)

    14.1.3 Corolario

    De los dos teoremas anteriores se deduce que el conjunto de lenguajes reconocidos

    por los autmatas de pila, son los lenguajes de tipo 2 y que todo lenguajede tipo2 se puede

    reconocer por un autmata de pila. Tambin se puede deducir que existe una correspon-

    dencia entre las gramticas, los lenguajes y los autmatas de tipo 2.

    Ejemplo 14.1.4

    Construir un autmata de pila que reconozca el lenguaje .

    Solucin : Se puede definir un autmata de pila, P, de la forma:

    donde se define :

    L = {0n1n/n 0}

    P = ({q0, q1, q2}, {0,1}, {Z,0},, q0,Z, {q0})

    (q0, 0,Z) (q1, 0Z)

    (q1, 0, 0) (q1, 0, 0)

    (q1, 1, 0) (q2, )

    (q2, 1, 0) (q2, )

    - 53 -

  • 7/31/2019 AUTOMATA.unlocked

    62/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    El autmata va copiando todos los 0 de la cinta en la pila, y cuando va encontrandolos 1, va sacando los ceros de la pila. Puede observarse que la cadena vacia tambin

    pertenece al lenguaje.

    Tambin se puede definir por la tabla, donde los guiones (-) representan estados

    imposibles.

    0 1

    q0,Z q1,0Z - q0,

    q1,0 q1,00 q2, -

    q2,0 - q2, -

    q2,Z - - q0,

    Por ejemplo para reconocer la sentencia 0011 del lenguaje, se realizan las siguientes

    transiciones :

    (q0,0011,Z) (q1,011,0Z) (q1,11,00Z) (q2,1,0Z) (q2, ,Z) (q0, , )

    En el caso general de i 1, las transiciones son las siguientes :

    (q0,00i11i,Z) (q1,0

    i11i,0Z) (q1,11i,00iZ) (q2,1

    i,0iZ) (q2, ,Z) (q0, , )

    y para i=0 la transicin es :

    (q0,00i11i,Z) (q0, , )

    14.2 Algoritmo de transformacin de una gramtica de tipo 2 en un autmata de

    pila

    Dada una gramtica de tipo 2 se puede construir un autmata de pila (por lo general

    no determinista) que reconozca el mismo lenguaje que genera la gramtica.

    (q2, ,Z) (q0, )

    (q0, ,Z) (q0, )

    i

    i

    - 54 -

  • 7/31/2019 AUTOMATA.unlocked

    63/106

  • 7/31/2019 AUTOMATA.unlocked

    64/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Ejemplo 14.2.1

    Sea la gramtica G=(VN,VT,S,P) que representa el manejo de expresiones aritm-

    ticas, siendo VN={E,T,F} donde E es la abreviatura de expresin, T la de trmino y F la

    de factor. VT={a,+,*,(,)} donde a representa a los identificadores. El smbolo inicial S=E.Las reglas de produccin son las siguientes:

    Construir un autmata de pila que reconozca el mismo lenguaje generado por la

    gramtica G.

    Solucin: AP=(Q, , q0, z0, F) dondeQ = {q}

    q0 = q

    z0 = E

    a) Smbolos terminales

    (1)

    (2)

    (3)

    (4)

    (5)

    b) Reglas de produccin

    (6)

    (7)

    (8)

    (9)

    E E+ T | T

    T T*F | F

    F (E) | a

    ,,

    = {a , +,*,(,)}

    = {a , +,*,(,),E, T, F}

    F= {}

    (q , a , a ) (q , )

    (q , +,+) (q , )

    (q , *, *) (q , )

    (q , (, ( ) (q , )

    (q , ), ) ) (q , )

    (q , ,E) (q , T)

    (q , ,E) (q ,E+ T)

    (q , ,T) (q , F)

    (q , ,T) (q , T*F)

    - 56 -

  • 7/31/2019 AUTOMATA.unlocked

    65/106

    AUTMATAS DE PILA

    (10)

    (11)

    Se puedeobservar que si se deseareconoceruna cadena porejemplo a+a seproducenretrocesos, debido a que el autmata no es determinista. As se pone la cadena a reconocer

    a+a en la cinta, el autmata en el estado inicial q, y lapila con su valor inicialE. Las reglas

    de transicin entre configuraciones estn numeradas y el autmata aplica en primer lugar

    la regla con nmero ms bajo.

    Aqu se alcanza una configuracin imposible. El smbolo terminal en la cima de la

    pila no coincide con el smbolo terminal de la cinta. Se debe retroceder hasta donde se

    eligi la ltima regla alternativa que fue la (10). Se observa que hay otra regla la (11).

    Se alcanza una configuracin imposible la pila est vacia pero queda una parte de la

    cadena en la cinta. Se tiene que retroceder hasta aplicar otra regla alternativa. Se retrocede

    hasta donde se aplic la regla (8) y ahora se utiliza la regla (9).

    Se alcanza una configuracin imposible. Se retrocede y se aplica la regla (11) en vez

    de la (10).

    Se alcanza una configuracin imposible. Se retrocede hasta donde se aplic la regla

    (6) y ahora se utiliza la regla (7). Estamos otra vez en la configuracin inicial.

    Se alcanza una configuracin imposible y se retrocede hasta donde se aplic la regla

    (10) y ahora se usa la (11).

    Se alcanza una configuracin imposible y se retrocede hasta donde se aplic la regla

    (10) y ahora se usa la (11).

    (q , ,F) (q , (E))

    (q , ,F) (q , a)

    (q , a + a ,E) (6)

    (q , a + a , T) (8)

    (a , a + a , F) (10)

    (a , a + a , (E) )

    (q , a + a , F) (11)

    (q , a + a , a) (1)

    (q , +a , )

    (q , a + a , T) (9)

    (q , a + a , T*F) (8)

    (q , a + a , F*F) (10)

    (q , a + a , (E)*F)

    (q , a + a , F*F)(11)

    (q , a + a , a*F)(1)

    (q , +a , *F)

    (q ,a + a ,E) (7)

    (q ,a + a ,E+ T) (6)

    (q ,a + a ,T+ T) (8)

    (q ,a + a ,F+ T) (10)

    (q ,a + a , (E) + T)

    (q ,a + a ,F+ T) (11)

    (q ,a + a ,a + T) (1)

    (q , +a , +T) (2)

    (q ,a ,T) (8)

    (q ,a ,F) (10)

    (q ,a , (E))

    - 57 -

  • 7/31/2019 AUTOMATA.unlocked

    66/106

  • 7/31/2019 AUTOMATA.unlocked

    67/106

    AUTMATAS FINITOS

    CAPTULO 15: AUTMATAS FINITOS

    Los autmatas finitos reconocen los lenguajes regulares, o de tipo 3 y se pueden

    representar intuitivamente por una cinta y una cabeza de lectura (fig. 12).

    Fig. 12 : Esquema intuitivo de un autmata finito.

    La cinta de entrada, slo contiene smbolos de un determinado alfabeto, y se mueve

    en una sla direccin.

    El control de estados, determina el funcionamiento del autmata.

    Una sentencia de un lenguaje determinado, colocada en la cinta, y leda por el

    autmata finito, es reconocida por ste, si el control de estados llega a un estado final.

    15.1 Definicin formal de autmata finito

    Se puede definir como una quntupla donde :

    E = {conjunto finito de smbolos de entrada, que constituye el vocabulario}

    Q = {conjunto finito de estados}

    es la funcin de transicin

    , es el estado inicial

    es el conjunto de estados finales

    0000 011 1 1 1 1 1 1 1 1

    CINTAMOVIMIENTO A IZQUIERDA CELDA

    CONTROL DE ESTADOS

    AF= (E, Q ,f, q1, F)

    f:E* Q Q

    q1 Q

    F Q

    - 59 -

  • 7/31/2019 AUTOMATA.unlocked

    68/106

  • 7/31/2019 AUTOMATA.unlocked

    69/106

  • 7/31/2019 AUTOMATA.unlocked

    70/106

  • 7/31/2019 AUTOMATA.unlocked

    71/106

  • 7/31/2019 AUTOMATA.unlocked

    72/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 15 : Diagrama de Moore del ejemplo 15.2.5.

    Ejemplo 15.2.6

    Sea el autmata finito A3 = ( E, Q, f, q1, F)donde E = {a,b,c}, Q = {q1, q2, q3, q4, q5},

    f se representa por la tabla siguiente y F={q2, q4}.

    Representar el diagrama de Moore, determinar el lenguaje quereconoce, y denotarlo

    con una expresin regular.

    f a b c

    q1 q2 q3 q5

    q2 q5 q5 q5

    q3 q5 q5 q4

    q4 q5 q5 q5

    q5 q5 q5 q5

    Solucin : Eldiagrama de Moorese construye al igual queen los ejemplos anteriores

    (fig. 16).

    El lenguaje generado es L(A3)={a,bc}, se puede denotar con la expresin regular

    a | bc.

    Fig. 16 : Diagrama de Moore del ejemplo 15.2.6.

    INICIO

    q

    qq

    q q

    a a,b,c

    a,b,cc

    b

    c

    a,ba,b,c

    1

    2

    3 4

    5

    - 64 -

  • 7/31/2019 AUTOMATA.unlocked

    73/106

    AUTMATAS FINITOS

    Ejemplo 15.2.7

    Seael autmata , donde fviene dada

    por la tabla siguiente.

    f 1 2 3

    q1 q1 q1 q2

    q2 q3 q3 q3

    q3 q3 q3 q3

    Determinar el diagrama de Moore, el lenguaje que genera y la expresin regular que

    lo describe.

    Solucin : Eldiagrama de Moorese construye al igual queen los ejemplos anteriores

    (fig. 17).

    El lenguaje reconocido es el siguiente :

    Fig. 17 : Diagrama de Moore del ejemplo 15.2.7.

    La expresin regular es .

    Ejemplo 15.2.8

    Construir un autmata finito que reconozca un identificador de un lenguaje de pro-

    gramacin, definido en EBNF de la forma :

    A4 = (E= {1,2,3}, Q = {q1, q2, q3},f, q1, F= {q2})

    L(A4) = {3,13,113,1113, ,123,12223, ,213,21113, }

    L(A4) =1

    (n1)2(n2)1

    (n3)2(n4)3/n1, n2, 0

    INICIO

    q q q1 2 3

    1,2

    3 1,2,3

    1,2,3

    (1 | 2)

    *

    3

    - 65 -

  • 7/31/2019 AUTOMATA.unlocked

    74/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    ::= {|}

    ::= a|b|...|z

    ::= 0|1|2|...|9

    Solucin : Este ejemplo es inverso a los anteriores, pues se da un lenguaje y se pideel autmata que lo reconoce. En primer lugar se construye un diagrama de Moore, de tal

    forma que a partir del estado inicial, despus de leer una letra, acepte letras o dgitos de

    forma variable, y cuando encuentre un carcter diferentede letra o dgito alcance el estado

    final. El diagrama de Moore es el que se muestra en la figura 18.

    Fig. 18 : Diagrama de Moore del ejemplo 15.2.8.

    $ representa a todos los caracteres diferentes de letra o dgito.

    El autmata finito se deduce del diagrama de Moore y es el siguiente :

    donde f se define por :

    f $

    q0 q1 - -

    q1 q1 q1 q2

    q2 - - -

    15.3 Clasificacin de los autmatas finitos

    Cuando se defini autmata finito, la funcin , es en general no

    determinista. As en funcin de f, se hablar de autmatas finitos deterministas AFD y

    autmatas finitos no deterministas AFND.

    INICIO letra

    letra, dgito

    $q q q0 1 2

    AF= (E= {a , b , ,z ,0,1, 9,$}, Q = {q0, q1, q2},f, q0, F= {q2})

    f:E* Q Q

    - 66 -

  • 7/31/2019 AUTOMATA.unlocked

    75/106

  • 7/31/2019 AUTOMATA.unlocked

    76/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 19 : Diagrama de Moore del ejemplo 15.3.1.1.

    15.3.2 Autmatas finitos deterministas

    Un autmata finito determinista AFD es un caso particular de los autmatas finitos,

    en el que la funcin de transicin no presenta ningna ambigedad en las transiciones de

    estados para una entrada dada.

    Un autmata finito determinista es una quntupla AFD=(E, Q, f, q1, F) donde la

    funcin es determinista.

    15.3.3 Teorema sobre la transformacin de AFND en AFD

    El teorema dice as : "Para todo autmata finito no determinista AFND=(E, Q, f, q1,

    F) se puede construir un autmata finito determinista AFD=(E, Q, f, q1, F) tal que el

    lenguaje reconocido por el autmata finito determinista AFD coincida con el lenguaje

    reconocido por el autmata finito no determinista AFND, es decir L(AFD) = L(AFND)".

    Demostracin :

    Se determina en primer lugar Q que es el conjunto de las partes del conjunto de

    estados Q.

    Q = P(Q) = { conjunto de las partes de Q }

    q

    q

    q

    q

    1

    2

    3

    4INICIO

    a

    b

    a

    b

    a

    b

    a

    f:E* Q Q

    - 68 -

  • 7/31/2019 AUTOMATA.unlocked

    77/106

    AUTMATAS FINITOS

    El cardinal de Q o nmero de estados del conjunto Q es :

    cardinal (Q)= 2 cardinal(Q)

    Al estado de Q que corresponde a {qa,qb,...ql} se denotar por [qa,qb,...ql] es decir que se

    define f de la forma :

    f(e,[qa,qb,...ql])=[qm,qn,...qk] si y slo si f(e,{qa,qb,...ql})={qm,qn,...qk}

    Es decir se calcula f(e,q) aplicando f a cada estado q de los que figuran en q y

    haciendo la unin de todos los resultantes.

    q1=[q1]

    F={ }

    Es decir, para que q sea estado final basta que uno o ms de los estados de Q que locomponen sea final.

    Con esto se ha construido un autmata finitodeterminista, ahorahace falta demostrar

    que reconocen el mismo lenguaje, para ello bastar comprobar que, para todo ,

    f(x,q1) F si y solo si f(x,q1) contiene un estado (o varios) qf F, y teniendo en cuenta

    la definicin de F esto ser evidentemente cierto si se demuestra que :

    f(x,q1)=[qa,...,ql] si y slo si f(x,q1)={qa,...,ql}

    Tal demostracin puede hacerse por induccin sobre la longitud de x : para longitud

    de x nula, , es inmediato puesto que f( ,q1)=q1=[q1], y f( ,q1)={q1}. Supngase

    que es cierto para longitud de x

  • 7/31/2019 AUTOMATA.unlocked

    78/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Ejemplo 15.3.3.1

    Sea el autmata finito no determinista del ejemplo 15.3.1.1, determinar un autmata

    finito determinista equivalente.

    Solucin : Siguiendo la construccin del teorema 15.3.3, el AFD tendr en un

    principio24 estados,esdecirQconjunto de laspartes deQ tieneenun principio 16 estados.

    Tambin se define el estado inicial y el conjunto de estados finales F.

    Q={ ,[q1],[q2],[q3],[q4],[q1q2],...,[q1q2q3q4]}

    q1=[q1]

    F={[q4],[q1q4],[q2q4],[q3q4],[q1q2q4],...,[q1q2q3q4]}

    y f se construye a partir de f resultando la siguiente tabla :

    f a b

    [q1] [q2q3]

    [q2] [q2q4]

    [q3] [q3] [q4]

    [q4] [q4]

    [q1q2] [q2q3] [q2q4]

    [q1q3] [q2q3] [q4]

    [q1q4] [q2q3q4][q2q3] [q3] [q2q4]

    [q2q4] [q4] [q2q4]

    [q3q4] [q3q4] [q4]

    [q1q2q3] [q2q3] [q2q4]

    [q1q2q4] [q2q3q4] [q2q4]

    [q1q3q4] [q2q3q4] [q4]

    [q2q3q4] [q3q4] [q2q4]

    [q1q2q3q4] [q2q3q4] [q2q4]

    Ahora bien, en un AF los estados que no son accesibles desde el inicial pueden

    eliminarse, as se eliminan los marcados en la tabla con flechas:

    [ ], [ ], [ ], [ ], [ ], [ ], [ ], y [ ] por no aparecer

    dentro de la tabla.

    q2 q1q2 q1q3 q1q4 q1q2q3 q1q2q4 q1q3q4 q1q2q3q4

    - 70 -

  • 7/31/2019 AUTOMATA.unlocked

    79/106

    AUTMATAS FINITOS

    [ ] por no aparecer en la tabla como transicin de un estado eliminado ante-

    riormente.

    [ ] por aparecer en la tabla como transicin de un estado eliminado anteriormente,

    y tambin en su propio estado, no es accesible por no aparecer en otro estado.

    Evidentemente [ ] nunca puede eliminarse como estado, por ser el estado inicial.

    Entonces f puede resumirse segn la tabla :

    f a b

    [q1] [q2q3]

    [q3] [q3] [q4][q4] [q4]

    [q2q3] [q3] [q2q4]

    [q2q4] [q4] [q2q4]

    El estado vacio [ ] no puede eliminarse en este caso, pues es accesible desde [ ] y

    [ ].

    De los 16 estados posibles slo han quedado 6, con los que se construye el diagrama

    de Moore de la figura 20.

    q2q3q4

    q3q4

    q1

    q1q4

    - 71 -

  • 7/31/2019 AUTOMATA.unlocked

    80/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 20 : Diagrama de Moore del ejemplo 15.3.3.1.

    Se puede comprobar que el lenguaje reconocido por el AFD es el mismo que el

    reconocido por el AFND del ejemplo 15.3.1.1. As el lenguaje reconocido por el AFD es :

    La ltima igualdad se ha obtenido teniendo en cuenta que:

    q1

    INICIO

    [ ]

    q4

    [ ]

    q3

    [ ]

    [q q ]2 3

    [q q ]2 4 a

    a

    b

    b

    b

    a

    a

    b

    a

    b

    a , b

    abb*

    | abb*

    aa*

    | aaa*

    ba*

    = abb *( | aa *) | aaa *ba *

    = abb *a * | aaa *ba *

    = ab *ba * | aaa *ba *

    = a(b * | aa *)ba *

    = a(b * | a *)ba *

    b* | aa * = b * | | aa * = b * | a *

    - 72 -

  • 7/31/2019 AUTOMATA.unlocked

    81/106

  • 7/31/2019 AUTOMATA.unlocked

    82/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Ejemplo 15.4.1

    Sea la gramtica de tipo 3 siguiente :

    G = (VN={A,S}, VT={a,b}, S, P)

    donde P son las reglas :

    Obtener un AFND y otro AFD que reconozcan el mismo lenguaje que esta gramtica

    genera.Solucin : Se define el AFND a partir de la gramtica como donde

    E={a,b}, Q={A,S,X}, q1=S, F={X}, y f viene dada por la tabla siguiente :

    f a b

    S {S,A} -

    A - {A,X}

    X - -

    El diagrama de Moore se representa en la figura 23.

    Fig. 23 : Diagrama de Moore del ejemplo 15.4.1

    El lenguaje que reconoce :

    El AFD se define como AFD=(E, Q,f, q1, F) donde f viene dado por la tabla :

    S aS

    S aA

    A bA

    A b

    AFND = (E, Q ,f, q1, F)

    S A X

    a

    a

    b

    bINICIO

    a*ab

    *b = aa *bb * = a+b+

    - 74 -

  • 7/31/2019 AUTOMATA.unlocked

    83/106

    AUTMATAS FINITOS

    f a b

    [S] [S,A]

    [A] [A,X]

    [X]

    [S,A] [S,A] [A,X]

    [S,X] [S,A]

    [A,X] [A,X]

    [S,A,X] [A,X] [A,X]

    Se eliminan de la tabla los estados inaccesibles desde el estado inicial [S], y se

    representa el diagrama de Moore de la figura 24.

    El lenguaje que reconoce es :

    aa*bb

    * = a+b +

    - 75 -

  • 7/31/2019 AUTOMATA.unlocked

    84/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 24 : Diagrama de Moore AFD del ejemplo 15.4.1

    15.5 Transformacin de una expresin regular en un autmata finito

    Dada una expresin regular existe un autmata finito capaz de reconocer el lenguaje

    que sta define. Recprocamente, dado un autmata finito, se puede expresar mediante una

    expresin regular el lenguaje que reconoce.

    Para la transformacin de una expresin regular en un autmata finito, se definirn

    en un principio las equivalencias entre las expresiones regulares bsicas y sus autmatas

    finitos. Posteriormente se mostrar la construccin de Thompson que genera

    automticamente un autmata finito a partir de una o varias expresiones regulares de

    cualquier complejidad.

    [S]

    [S,A]

    [A,X]

    a

    b

    ab

    a

    b

    a,b

    INICIO

    [S]

    [S,A]

    [A,X]

    a b

    a

    a

    bINICIO

    - 76 -

  • 7/31/2019 AUTOMATA.unlocked

    85/106

    AUTMATAS FINITOS

    15.5.1 Equivalencia entre expresiones regulares bsicas y autmatas finitos

    Se muestran equivalencias entre expresiones regulares simples y autmatas finitos

    expresados mediante un diagrama de Moore

    15.5.1.1 Expresin regular

    Fig. 25 : Diagrama de Moore de

    15.5.1.2 Expresin regular a

    Fig. 26 : Diagrama de Moore de a

    15.5.1.3 Expresin regular a*

    Fig. 27 : Diagrama de Moore de a*

    qf

    INICIOq

    qf

    INICIOq

    a

    qf

    INICIO a

    - 77 -

  • 7/31/2019 AUTOMATA.unlocked

    86/106

  • 7/31/2019 AUTOMATA.unlocked

    87/106

    AUTMATAS FINITOS

    15.5.1.7 Expresin regular (ac b)*

    Fig. 32 : Diagrama de Moore de (acb)*

    15.5.1.8 Expresin regular (acd b)*

    Fig. 33 : Diagrama de Moore de (acd b)*

    15.5.2 Construccin de Thompson

    La construccin de Thompson construye un AFND a partir de cualquier expresin

    regular. La herramienta lex utiliza esta construccin para obtener en sucesivos pasos un

    AFD (Aho et al., 1986, captulo 3).

    Supongamos que N(s) y N(t) son AFND para las expresiones regulares s y t.

    a) Para la expresin regular s tse construye el AFND N(s t) que se muestra en la figura

    34.

    Fig. 34 : Construccin de Thompson para N(st)

    b) Para la expresin regular stse construye el AFND N(st) que se muestra en la figura 35.

    |

    INICIO

    ba

    c

    qf

    q

    |

    |

    INICIO

    ba

    qf 1 q2

    q

    c

    d

    |

    | |

    INICIO

    qj qk

    ql qm

    qf

    N(s)

    N(t)

    q

    |

    - 79 -

  • 7/31/2019 AUTOMATA.unlocked

    88/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Fig. 35 : Construccin de Thompson para st

    c) Para la expresin regular s* se construye el AFND N(s*) que se muestra en la figura 36.

    Fig. 36 : Construccin de Thompson para s*

    d) Para la expresin regular (s) se utiliza directamente N(s)

    Ejemplo 15.5.2.1

    Utilizando la construccin de Thompson construir un autmata finito AF que reco-

    nozca la expresin regular (0 1)* 0 (0 1) (0 1)

    Solucin:Sedescomponelaexpresinregularensubexpresiones,siguiendolaprecedencia

    de operadores, tal y como se muestra en la figura 37.

    Fig. 37 : Descomposicin sintctica de la expresin regular

    Comenzandoporr1,r2,...r7sellegaqueelAFNDdelaexpresinr7eselrepresentado

    en la figura 38.

    q1 q2 q3N(s) N(t)INICIO

    q1 q2 q3N(s)INICIO

    qf

    | | |

    r17

    r12r16

    r11

    r10

    r7

    r6r5

    r4 *

    r3( )

    r1 | r2

    0 1

    r15

    r13 r14|

    0 1

    ( )

    - 80 -

  • 7/31/2019 AUTOMATA.unlocked

    89/106

    AUTMATAS FINITOS

    Fig. 38 : Construccin de Thompson para r7

    Continuando se puede observar que para la expresin r17 el AFND es el que se

    presenta en la figura 39.

    Fig. 39 : Construccin de Thompson para (0|1)*0(0|1)(0|1)

    15.6 Minimizacin de estados de un AFD

    Se defini anteriormente que dos AF son equivalentes si reconocen el mismo len-

    guaje. En este apartado se trata de encontrar un AF equivalente en forma mnima. Es

    importante poder saber si un AF est en forma mnima, y si no lo est hallar un AF

    equivalente en forma mnima. Se puede demostrar que siempre existe una forma mnima

    de un AF (Hopcroft y Ullman, 1979, pp. 67-68). Para determinar el AF en forma mnima

    no es preciso realizar infinitos ensayos con cadenas de entrada. Existen algoritmos para

    minimizar AF, es decir, hallar otro AF en forma mnima equivalente.

    Algoritmo 15.6.1

    Entrada. Un autmata finito determinista A=(E,Q,f,q0,F).

    Salida. Un autmata finito determinista A=(E,Q,f,q0,F) que acepta el mismo

    lenguaje que A, y que tiene el menor nmero de estados posible.

    INICIO0 1

    2 3

    4 5

    6 7 8

    0

    1

    0

    INICIO0 1

    2 3

    4 5

    6 7 8

    0

    1

    0

    0

    1

    0

    1

    9 10

    11 12

    13

    14 15

    16 17

    18

    - 81 -

  • 7/31/2019 AUTOMATA.unlocked

    90/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    Metodo. El algoritmo para minimizar el nmero de estados de un AFD funciona

    encontrando todos los grupos de estados que pueden ser diferenciados por una cadena de

    entrada.Cada grupode estados que no puede diferenciarse se fusiona entoncesen un nico

    estado. El algoritmo opera manteniendo y refinando una particin del conjuntode estados.Cada grupo de estados dentro de la particin est formado por estados que an no han sido

    distinguidosunosdeotros,y todos lospares deestadosescogidos deentregrupos diferentes

    han sido considerados distinguibles por una entrada.

    1. Se construye una particin inicial del conjunto de estados Q en dos grupos : los

    estados finales F y los estados no finales Q-F.

    2. Se determina una nueva particin nueva a partir de la particin anterior , con el

    siguiente procedimiento :

    FOR cada grupo G de DO

    BEGIN

    Particin de G en subgrupos tales que dos estados qi y qj de G estn en el

    mismo subgrupo si, y slo si, para todos los smbolos de entrada e, los

    estados qi y qj tienen transiciones en e hacia estados del mismo grupo de

    ;

    /* en el peor caso, un estado estar slo en un subgrupo */

    sustituir G en nueva por el conjunto de todos los subgrupos formados;

    END

    3. Se realizan las siguientes comprobaciones.

    IF nueva= THEN

    BEGIN

    final:= ;

    GOTO 4; /* Ir al paso 4 */

    END

    ELSE

    - 82 -

  • 7/31/2019 AUTOMATA.unlocked

    91/106

    AUTMATAS FINITOS

    BEGIN

    := nueva;

    GOTO 2; /* Volver al paso 2 */

    END4. Se escoge un estado en cada grupo de la particin final como representante de

    este grupo.

    Los representantes seran los estados reducidos Q de A. Sea un estado q i repre-

    sentante, y sea una entrada a que produce una transicin de qi a qj en A. Sea qk el

    representante del grupo de qj (qk puede ser qj). Entonces A tiene una transicin desde qia qk con la entrada a. Sea el estado inicial q0 de A el representante del grupo que contiene

    al estado inicial q0 de A, y sean los estados finales F de A los representantes que estn

    en F. Se puede observar que cada grupo de final consta nicamente de estados en F o notiene ningn estado en F.

    5. Se eliminan los estados pasivos qp de Q, es decir estados que no son finales, y

    que tienen transiciones hacia ellos, pero no desde ellos hacia otros. Todas las transiciones

    a qp desde otros estados se convierten en indefinidas. Tambin se eliminan los estados

    inaccesibles de Q, es decir todos los estados que no se pueden alcanzar desde el estado

    inicial. Se obtiene Q y la funcin f.

    Ejemplo 15.6.2

    Sea el autmata finito determinista A=(E,Q,f,q1,F), donde E={a,b},

    Q={q1,q2,q3,q4,q5}, F={q5}, y f viene dada por la tabla :

    f a b

    q1 q2 q3

    q2 q2 q4

    q3 q2 q3

    q4 q2 q5

    q5 q2 q3

    Se desea determinar un autmata equivalente con un nmero de estados mnimo.

    Solucin

    - 83 -

  • 7/31/2019 AUTOMATA.unlocked

    92/106

    LENGUAJES, GRAMTICAS Y AUTOMATAS

    (1).La particin inicial consta de dos grupos : (q5) conjunto de estados finales, y

    (q1q2q3q4) los estados no finales.

    (2). Se aplica el procedimiento de particin a cada grupo. El grupo (q5) consta de un

    slo estado, y no se puede div