15
Análisis Sintáctico Ascendente 4.5 en adelante

Análisis Sintáctico Ascendente

  • Upload
    karif

  • View
    31

  • Download
    3

Embed Size (px)

DESCRIPTION

Análisis Sintáctico Ascendente. 4.5 en adelante. Por desplazamiento y reducción. La entrada se “reduce” al símbolo inicial Desplazando elementos de la entrada Llegar de las hojas hacia la raíz. Procedimiento. A partir de la entrada Se sustituye una subcadena Adecuadamente elegida - PowerPoint PPT Presentation

Citation preview

Page 1: Análisis Sintáctico Ascendente

Análisis Sintáctico Ascendente

4.5 en adelante

Page 2: Análisis Sintáctico Ascendente

Por desplazamiento y reducciónLa entrada se “reduce” al símbolo inicialDesplazando elementos de la entradaLlegar de las hojas hacia la raíz

Page 3: Análisis Sintáctico Ascendente

ProcedimientoA partir de la entrada

Se sustituye una subcadena• Adecuadamente elegida• Que concuerde con un lado derecho

Por el no terminal del lado izquierdo• Trazando una derivación inversa• Por el lado derecho

Page 4: Análisis Sintáctico Ascendente

EjemploGramática

S => aABeA => Abc | bB => d

Entrada “abbcde” se reduce a S por:

abbcde

Page 5: Análisis Sintáctico Ascendente

EjemploGramática

S => aABeA => Abc | bB => d

Entrada “abbcde” se reduce a S por:

abbcdeaAbcde

Page 6: Análisis Sintáctico Ascendente

EjemploGramática

S => aABeA => Abc | bB => d

Entrada “abbcde” se reduce a S por:

abbcdeaAbcdeaAde

¿Por qué no aAAcde?

Page 7: Análisis Sintáctico Ascendente

EjemploGramática

S => aABeA => Abc | bB => d

Entrada “abbcde” se reduce a S por:

abbcdeaAbcdeaAdeaABe

Page 8: Análisis Sintáctico Ascendente

EjemploGramática

S => aABeA => Abc | bB => d

Entrada “abbcde” se reduce a S por:

abbcdeaAbcdeaAdeaABeS

Page 9: Análisis Sintáctico Ascendente

EjemploGramática

S => aABeA => Abc | bB => d

Entrada “abbcde” se reduce a S por:

abbcdeaAbcdeaAdeaABeS

MangosMangosMangosMangos

Page 10: Análisis Sintáctico Ascendente

MangosSubcadenaConcuerda con un lado derechoSe reduce al no terminal de la izquierdaAvanza un paso en la derivación inversa

De una derivación derechaSi la gramática no es ambigua

Existe exactamente un mango

Page 11: Análisis Sintáctico Ascendente

Volviendo al ejemploGramática

S => aABeA => Abc | bB => d

Es recursiva por la izquierda¿Puede derivar abbcde?

Page 12: Análisis Sintáctico Ascendente

Volviendo al ejemploGramática

S => aABeA => Abc | bB => d

Es recursiva por la izquierda¿Puede derivar abbcde?

Solo por la derecha

Page 13: Análisis Sintáctico Ascendente

EjercicioPrograma -> Instrucción | { Rutina

}Rutina -> Instrucción ; Instrucción

|Instrucción ; Rutina

Instrucción -> nil | Variable ++ |Variable -- |While Prueba do

ProgramaPrueba -> Variable <> 0 |

Variable = 0

Analizar Ascendentemente

While v<>0 do {y++;x++;v--;

}

Page 14: Análisis Sintáctico Ascendente

Gramáticas LRGramáticas LR

Left to Right • de izquierda a derecha

Rightmost production• La producción de más a la derecha

Variaciones: SLR, LALR, LR(k)

Page 15: Análisis Sintáctico Ascendente

Tercer proyectoCompilador de programas whileGenerando script de assembler para debugTomando en cuenta los macrosFecha de entrega 21-10-2006