Gramaticas_Ascendentes_Descendentes

Embed Size (px)

Citation preview

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    1/35

    GRAM TICADESCENDEN

    Laboratorio de OrganCompiladores 1Universidad de San

    ASCENDENTES YES

    i

    zacin de Lenguajes y

    arlos de Guatemala.

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    2/35

    - Gramticas

    - Gramticas Ascendentes. Funcionamiento. Implementar de una pila por Uso de precedencia de Ope

    -Gramticas Descendentes Funcionamiento. Reescritura de Gramticas

    o Supresin de la Ambigeo Factorizacin por la izquio Eliminacin de la recursivi

    desplazamiento y reduccin.adores.

    a

    d.rda.dad por la izquierda.

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    3/35

    Las ventajas de las gramticas: Las gramticas son espprecisas de lenguajes de progr A partir de una gramautomticamente un analizador

    El proceso de construccinambigedades. Una gramtica proporciona ude programacin, siendo mdetectar errores. Es ms fcil ampliar/modificacon una gramtica.

    cificaciones sintcticas ymacin.tica se puede generarsintctico.

    puede llevar a descubrira estructura a un lenguaje

    s fcil generar cdigo y

    el lenguaje si est descrito

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    4/35

    = Vocabulario finito de s

    smbolos terminales son loslenguaje.N =Conjunto finito de smb

    otras producciones.S = Un smbolo terminal b

    principal que describir oraP = Conjunto de reglas quegenerar como parientes del

    bolos terminales. Los

    smbolos validos en unlos No Terminales los

    ico. Este ser el smbolo

    ciones enteras.nos dicen que se puedeaxioma.

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    5/35

    Es tambin conocido como:

    1. Gramticas por desplazami2. Gramticas por precedenci

    Las gramticas ascenun rbol de anlisis sintcticoque comienza por las hojas (focima).Se puede considerar este proccadena w al smbolo inicial de l

    nto y reduccin.de operadores.

    ente intenta construirpara una cadena de entradado) y avanza hacia la raz (la

    so como de "reducir" unaa gramtica.

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    6/35

    Gramtica Entrada para la

    S-->L uno,dos,tres

    L-->L,id| id

    ramtica

    ,cuatro,cinco

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    7/35

    Se basa en una mquina de pil El alfabeto de la pilaest for

    terminales y no terminales. El alfabeto de entradaest fterminales.

    La funcin de transicinse dacciones sobre la pila:{ Desplazar, Reducir, Ac

    El proceso de anlisis consistepila y los elementos siguientessubcadena que coincida con lproduccin dada A .

    donde:ado por los smbolos

    rmado por los smbolos

    efine en base a las si uientes

    ptar, Error }

    n ir explorando el cima de lan la pila hasta encontrar unaparte derecha de una

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    8/35

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    9/35

    GRAMTICASPOR P

    OPERADORESResuelve la accin alternativa (conflictos desplaza/reduce) enprecedencia entre operadores.

    El anlisis de precedencia de o

    lenguajes definidos por gramtirestricciones:

    1. No podrn aparecer dos smconsecutivos en las produccion2. No podrn existir produccion

    ECEDENCIADE

    nte posiblesbase a criterios de

    erador es aplicable a

    as con las siguientes

    olos no terminaless.s a la cadena vaca.

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    10/35

    EJEMPLOPRECEDENCIA DEOPERADORES, CONSTRUCCI

    precedence left or;precedence left and;

    INICIA::=C:value {:System.out.

    C::=C:ee1 or C:ee2{:RESULTCrearHoja(RESULT,ee1);CrearHoja(RESULT,ee2);:}

    | C:e1 and C:e2{:RESULTCrearHoja(RESULT,e1);CrearHoja(RESULT,e2);:}

    | true:TRUE{:RESULT=Cr

    | false:FALSE {:RESULT=Cr

    N DE RBOL SINTCTICO.

    println(value.valor);:};

    CrearNodo(or","OPER");

    CrearNodo(and","OPER");

    arNodo(TRUE,TRUE");:}

    earNodo(FALSE,FALSE");:};

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    11/35

    EJEMPLO:

    or

    true false

    andfalse

    or

    false true

    and

    or

    false

    or true true

    and

    false

    or

    true

    false false

    and true

    and

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    12/35

    MTODOS A SC

    SB c E F

    27/09/2010

    A

    a

    b d D

    C

    e f

    NDENTES

    Partiendo del rbol dederivacin se compruebala siguiente cadena

    Partiendo de abajo haciaarriba utilizando la pilay reduciendo lasproducciones

    12

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    13/35

    MTODOS A SC

    SB c E F

    A b d D

    C

    e f

    NDENTES

    Ingresa a la pila

    a

    El anlisis se hace dearriba hacia abajo.

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    14/35

    MTODOS A SC

    SB c E F

    27/09/2010

    b d D

    C

    e f

    NDENTES

    Reduce en la produccin A a

    Cambia el valor en la pila

    14

    A

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    15/35

    MTODOS A SC

    SB c E F

    27/09/2010

    d D

    C

    e f

    NDENTES

    Ingresa el valor de b a lapila.

    15

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    16/35

    MTODOS A SC

    Sc E F

    27/09/2010

    d D

    C

    e f

    NDENTES

    Reduce en la produccinB Ab

    Cambia el valor en la pila

    16

    B

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    17/35

    MTODOS A SC

    SE F

    27/09/2010

    d D

    C

    e f

    NDENTES

    Se moviliza en el rbol eingresa c.

    e agrega c a a p a

    17

    B c

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    18/35

    MTODOS A SC

    SE F

    27/09/2010

    D

    C

    e f

    NDENTES

    Se moviliza en el rbol eingresa d.

    e agrega a a p a

    18

    B c d

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    19/35

    MTODOS A SC

    SE F

    27/09/2010

    D

    C

    f

    NDENTES

    Se moviliza en el rbol eingresa e.

    e agrega e a a p a

    19

    B c d e

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    20/35

    MTODOS A SC

    SE F

    27/09/2010

    D

    C

    NDENTES

    Se moviliza en el rbol eingresa f.

    e agrega a a p a

    20

    B c d e f

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    21/35

    MTODOS A SC

    SE F

    27/09/2010

    D

    NDENTES

    Reduce en la produccinC e f

    Cambia el valor en la pila

    21

    B c d C

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    22/35

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    23/35

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    24/35

    MTODOS A SC

    27/09/2010

    NDENTES

    Reduce en la produccinS B c E F

    Cambia el valor en la pila

    24

    S

    EJEMPLO

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    25/35

    EJEMPLO

    c --> c || C| c && c| ! c

    | (c)| E == E

    E --> E| E -| E *| E / | (E)| NU

    | E = E

    | E < E| E > E| TRUE

    | FALSE;

    | CA

    + E

    E

    ENA

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    26/35

    GRAMTICASDESCE

    Son reconocedores de estructu

    la derecha. Se conocen como1. Parser Up Botom

    Las gramticas descendente aintenta utilizan un reconocedocomienzan por la raz y se deri

    Se puede considerar este proccadena hasta al final y a contin

    DENTES

    ras sintcticas derivables por

    l contrario de las ascendentesde cadenas de entrada que

    a hasta las hojas.

    so como de desplazar unaacin empezar a reducirla.

    F

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    27/35

    FUNCIONAMIENTOGramticaS-->L

    L-->id,L| id

    L

    L

    L

    r5

    r4

    uno , dos , tres

    d1 d2 d3 d4 d5 d

    Entrada para la gramticauno,dos,tres,cuatro,cinco

    r3

    , cuatr

    o

    , cinco

    6 d7 d8 d9

    L

    L

    r2

    r1

    R

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    28/35

    REESCRITURA DE GR

    Las gramticas descendentes dcondiciones

    o Supresin de la Ambigedo Eliminacin de la recursivio Factorizacin or la iz uie

    1. Es por ello que una gramtireescritura de una gramticlas tres reglas enunciadas a

    MATICAS

    eben cumplir con tres

    ad.dad por la izquierda.rda.

    a descendente puede ser unaascendente que cumpla conriba.

    S

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    29/35

    SUPRESION DE LA AMLa supresin de la ambigedadformas diferentes:

    1. Por precedencia de oper2. Por factorizacin por la iz

    Para eliminarla or recedencia

    1. Creando un nuevo no terminaloperadores que tienen la

    2. Sustituir en la gramtica dnuevo terminal creado y umismo no terminal.

    BIGUEDAD

    puede ser realizada de dos

    doresuierda

    de o eradores se rocede:

    por cada operador o conjunto demisma precedenciae operador del lado derecho elna produccin alternativa con el

    SUPRESIN DE LA AMBIE

    DAD(EJEMPLO)

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    30/35

    SUPRESIN DE LA AMBI

    Partiendo de un ejemplo de unaexpresiones condicionales.Producion

    S--> CC--> C &&

    C--> C ||

    --

    Donde se acuerda que el smboprecedencia seguido por el smle sigue y por ultimo las palabra

    C --> ( CC --> TRU

    C --> FAL

    C-->E==

    EDAD(EJEMPLO)

    gramtica ascendente para las

    s

    C

    C

    lo || es el de menorolo &&, el smbolo !

    s reservadas TRUE Y FALSE.

    E

    E

    SUPRESIN DE LA AMBIEDAD

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    31/35

    SUPRESIN DE LA AMBI

    (NUEVO NO TERMINAL)Lista de no terminales en ord

    mayor.

    Operador

    ||

    &&!

    TRUE,FALSE

    EDAD

    n de precedencia de menor a

    Nuevo Terminal

    X

    V Y

    Z

    SUPRESIN DE LA AMBIEDAD

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    32/35

    SUPRESIN DE LA AMBI

    (SUSTITUCIN DEL NO TGramtica final

    ProducciS -->

    C --> C

    C --> X -->X &

    X -->V

    V -->!Z V -->ZZ -->(C

    Z -->TR

    Z --> FAL

    EDAD

    ERMINAL)

    nes

    X

    X V

    E

    SE

    FACTORIZACIN PORLA IZQUIERDA

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    33/35

    FACTORIZACIN POR

    La factorizacin por la izquierdacomunes y los agrupara, eliminfactorizada la gramtica. Un ejeanterior.

    Produccio

    S--> C

    C-->CCC-> &&

    (factorizad

    C--> ||

    (factorizadC --> ! C

    C --> ( C

    C --> TRU

    C --> FAL

    LA IZQUIERDA

    , encontrara todos los smbolosndo la ambigedad al quedar

    mplo a partir de la gramtica

    es

    a)

    a)

    E

    E

    ELIMINACIN DE LA RECURSIVIDAD

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    34/35

    ELIMINACIN DE LA R

    La eliminacin de la recursividaregla que se ilustra a continuaci

    Recursiva por laizquierda

    Apl

    -->

    A--> A 2 A

    A

    A--> A n

    A A A

    ECURSIVIDAD

    es realizada en base a unan:

    cando la Regla

    1A

    2A

    nA

    ELIMINACIN DE LA RE

    URSIVIDAD(EJEMPLO)

  • 8/8/2019 Gramaticas_Ascendentes_Descendentes

    35/35

    ELIMINACIN DE LA RE

    Siguiendo con el ejemplo nos drecursividad por la izquierda poesta regla para quitarla.

    ProduccioS --> C

    C --> X --

    C --> X -->V V

    V--> && V V -->

    V -->!Z V -->Z

    Z -->(C)Z -->TRU

    Z --> FAL

    URSIVIDAD(EJEMPLO)

    mos cuenta que aun tienelo que procedemos a aplicar

    es

    V

    E

    E