Lenguajes y Automatas

16
Se estudiarán: Las Gramáticas Independientes del Contexto (GIC). Los lenguajes que estas definen, llamados lenguajes independientes del contexto (LIC), Y los autómatas que reconocen a estos últimos, los Autómatas de Pila (AP). Considerando la jerarquía de Chomsky, también se les llama respectivamente gramáticas y lenguajes de tipo 2. Mientras que las gramáticas regulares permiten formalizar el concepto de sintaxis, los Autómatas de Pila permitirán modelar el funcionamiento del analizador sintáctico, una de las partes fundamentales de un compilador. Análogamente, los lenguajes regulares y los Autómatas Finitos permiten representar los aspectos léxicos y el análisis léxico, respectivamente, de los lenguajes de programación.

description

teoeria

Transcript of Lenguajes y Automatas

  • Se estudiarn:

    Las Gramticas Independientes del Contexto (GIC). Los lenguajes que estas definen, llamados lenguajes independientes

    del contexto (LIC),

    Y los autmatas que reconocen a estos ltimos, los Autmatas dePila (AP).

    Considerando la jerarqua de Chomsky, tambin se les llama

    respectivamente gramticas y lenguajes de tipo 2.

    Mientras que las gramticas regulares permiten formalizar el concepto

    de sintaxis, los Autmatas de Pila permitirn modelar el funcionamiento

    del analizador sintctico, una de las partes fundamentales de un

    compilador.

    Anlogamente, los lenguajes regulares y los Autmatas Finitos permiten

    representar los aspectos lxicos y el anlisis lxico, respectivamente, de

    los lenguajes de programacin.

  • Definicin de G.I.C.

    En las Gramticas Independientes del Contexto (G.I.C.)

    las producciones son menos restrictivas.

    En la parte izquierda de la produccin est formada por un

    nico smbolo no terminal, pero no hay restricciones respecto

    a la parte derecha de la produccin.

    Por lo tanto, las producciones son de la forma:

    A ::= v

    Donde:

    A N y v

  • Autmatas de Pila

    Un Autmata de Pila es un Autmata Finito al que se le haincorporado memoria que se gestiona como una pila, con lo que seaumenta su poder funcional. El dispositivo ser no determinista ytendr un nmero finito de movimientos o transiciones a elegir encada situacin.

    Los Autmatas de Pila no son dispositivos deterministas y elconjunto de los Autmatas de Pila Deterministas slo permitereconocer a un subconjunto de los lenguajes de tipo 2.

  • Un autmata de pila, es un tipo de maquinaterica, que recibe una cadena constituida porsmbolos de un alfabeto y determina si esacadena pertenece al lenguaje que el autmatareconoce.

    El autmata de pila cuenta con una cinta deentrada y un mecanismo de control, quepuede encontrarse en uno de entre unnmero finito de estados. Uno de estosestados se designa como estado inicial yadems algunos estados se llaman deaceptacin o finales. A diferencia de lasautmatas finitos, los autmatas de pilacuentan con una memoria auxiliar llamadapila. Los smbolos (llamados smbolos de pila)pueden ser insertados o extrados de la pila.

    Cinta de entrada

    PILa

    S2

    S3 S1

    S4

    Mecanismo de control

    Indicador de estado

    Cabeza delectura

  • Hay dos tipos de movimientos:

    1. Dependiendo del estado actual del Autmata, del smbolo que hay

    en la cima de la pila y del que hay en la cadena de entrada, habr

    que elegir entre un conjunto de posibles transiciones. Cada

    transicin est formada por un posible cambio de estado y por una

    cadena (puede ser ) que reemplazar al smbolo que ocupa lacima de la pila. Despus de realizar un movimiento se avanza en el

    anlisis de la cinta de entrada.

    2. Se le llama -movimiento y es similar al anterior salvo que elsmbolo de la cadena de entrada no se tiene en cuenta y, por tanto,

    el anlisis de dicha cadena no avanza.

  • Formalmente un Autmata de Pila es de la siguiente forma:

    AP = { Q , , f, , q0 ,z0, F}

    Donde:

    Q es el conjunto finito de estados

    es el alfabeto de la cinta de entrada es el alfabeto de la pilaq0 Q es el estado inicialz0 es el smbolo inicial de la pilaF Q es el conjunto de estados finalesf : Q ( ) P ( Q )

    f (q, a, z) = {( p1, 1) , (p2, 2), ... ,(pn, n)}

    NOTA: Estas transiciones indican que si el Autmata de Pila se encuentra en el

    estado q, recibe como entrada el smbolo a y z es el smbolo que se encuentra en

    la cima de la pila, el Autmata puede pasar al estado p1 y reemplazar en la pila el

    carcter z por la cadena 1, o bien elegir cualquiera de las otras posibilidades.

  • Transiciones de un Autmata de Pila

    Leer un smbolo de entrada Extraer un smbolo de la pila Insertar un smbolo en la pila Pasar a un nuevo estado (p, x, s; q, y)

    P Estado actualx Smbolo del alfabeto que se lee en la entradas Smbolo que se extrae de la pilaq Nuevo Estadoy Smbolo que se inserta en la pila

    Cinta de entrada

    PILa

    S2

    S3 S1

    S4

    Mecanismo de control

    Cabeza delectura

    Indicador de estado

  • Ejemplo:

    Disear un Autmata de Pila que reconozca exactamente las cadenas an bn para

    cualquier numero natural n

    AP = (Q,V,, , qo,Zo,F)Q={q0,q1}

    V={a,b}

    = {Z0,,1}F={q1}

    q0, a, Z0 = {(q0,1,Z0)} q0, b, Z0 = {(q1, )} q1, b, Z0 = {(q1, )}

    Aceptar la cadena:aabb

  • Ejemplo:

    Disear un Autmata de Pila que reconozca exactamente las cadenas an bn para

    cualquier numero natural n

    AP = (Q,V,, , qo,Zo,F)Q={q0,q1}

    V={a,b}

    = {Z0,,1}F={q1}

    q0, a, Z0 = {(q0,1,Z0)} q0, b, Z0 = {(q1, )} q1, b, Z0 = {(q1, )}

    q0b, 1;

    q1

    , ; 1 , 1;

  • a a b b

    Cinta de entrada

    PILa

    Zo

    AP = (Q,V,, , qo,Zo,F)

    Q={q0,q1} V={a,b} = {Z0,,1}

    q0, a, Z0 = {(q0,1,Z0)} q0, b, Z0 = {(q1, )} q1, b, Z0 = {(q1, )}

    Mecanismo de Control

    Entrada Por Leer Pila

    q0 aabb Z0

    q0 abb 1

    q1 bb 1 1

    q1 b 1

    q1 Z0

    Ejemplo:

  • Actividad 3.4:

    Elaborar un autmata de pila que acepte xm, yn,x m donde : n,m >=1

    A

    1) S xMx2) M xMx3) M | N4) N yN5) N |

    Nota: A representa los smbolos no terminales y gamma una combinacin de

    smbolos terminales y no terminales.

  • Actividad 3.4:

    Elaborar un autmata de pila que acepte xm, yn,x m donde : n,m >=1

    A

    1) S xMx2) M xMx3) | N

    4) N yN5) |

    Por la Produccion 1 XMXPor la Produccin 2 xxMxxPor la Produccin 3 xxNxxPor la produccin 4 xxyNxxPor la Produccin 5 xxyxx

    xxyxx

    Se obtienen las siguientes cadenas:

  • Autmata

    BA C D, ; # y, ; x, ; , #;

    E

    x, ; y, ; x, ;

  • Autmata

    BA C D, ; # y, ; x, ; , #;

    E

    x, ; y, ; x, ;

    Transicin Leer un smbolo de

    entrada

    Extraer un smbolo de la

    pila

    Insertar un smbolo en la pila Pasar a un

    nuevo estado

    A B No se lee nada No se extrae nada de la pila Inserta un carcter numeral que indicara final de la misma

    B

    BB Se lee una x de la cinta

    No se extrae nada de la pila Inserta una x en la pila C

    BC Se lee una y de la cinta

    No se extrae nada de la pila No se inserta nada en la pila C

    CC Se lee una y de la cinta

    No se extrae nada de la pila No se inserta nada en la pila D

    CD Se lee una x de la cinta

    Se extrae una x de la pila No se inserta nada en la pila D

    DD Se lee una x de la cinta

    Se extrae una x de la pila No se inserta nada en la pila E

    DE No se lee nada Se extrae el smbolo # No se inserta nada en la pila Fin del autmata

  • Actividad 3.5:

    Sea l = {ai, bi : i >=1} sobre = ,

    q0, a, Z0 = {(q0,AZ0)} q0, a, = {(q0, AA)} q0, b, = {(q1,)} q1, b, = {(q1, )} q1, , Z0 = {(q2, Z0)}

    Nota: La idea es copiar las aes en la pila y borrar una a por cada b que sea leda en la cinta. Una cadena es aceptada si es procesada completamente y en la pila slo queda el marcador en el fondo Z0.

    Sea la cadena : aabb

  • q0 q1b, ; , 0; 0

    q2

    a, Z0; 0a,A;AA b, ; q0, a, Z0 = {(q0,AZ0)}

    q0, a, = {(q0, AA)} q0, b, = {(q1,)} q1, b, = {(q1, )} q1, , Z0 = {(q2, Z0)}