La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Análisis Sintáctico Ascendente

Presentaciones similares


Presentación del tema: "Análisis Sintáctico Ascendente"— Transcripción de la presentación:

1 Análisis Sintáctico Ascendente
4.5 en adelante

2 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

3 Procedimiento A 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

4 Ejemplo Gramática S => aABe A => Abc | b B => d
Entrada “abbcde” se reduce a S por: abbcde

5 Ejemplo Gramática S => aABe A => Abc | b B => d
Entrada “abbcde” se reduce a S por: abbcde aAbcde

6 Ejemplo Gramática S => aABe A => Abc | b B => d
Entrada “abbcde” se reduce a S por: abbcde aAbcde aAde ¿Por qué no aAAcde?

7 Ejemplo Gramática S => aABe A => Abc | b B => d
Entrada “abbcde” se reduce a S por: abbcde aAbcde aAde aABe

8 Ejemplo Gramática S => aABe A => Abc | b B => d
Entrada “abbcde” se reduce a S por: abbcde aAbcde aAde aABe S

9 Ejemplo Gramática S => aABe A => Abc | b B => d
Entrada “abbcde” se reduce a S por: abbcde aAbcde aAde aABe S Mangos Mangos Mangos Mangos

10 Mangos Subcadena Concuerda con un lado derecho
Se reduce al no terminal de la izquierda Avanza un paso en la derivación inversa De una derivación derecha Si la gramática no es ambigua Existe exactamente un mango

11 Volviendo al ejemplo Gramática S => aABe A => Abc | b B => d
Es recursiva por la izquierda ¿Puede derivar abbcde?

12 Volviendo al ejemplo Gramática S => aABe A => Abc | b B => d
Es recursiva por la izquierda ¿Puede derivar abbcde? Solo por la derecha

13 Ejercicio Analizar Ascendentemente While v<>0 do { y++; x++;
Programa -> Instrucción | { Rutina } Rutina -> Instrucción ; Instrucción | Instrucción ; Rutina Instrucción -> nil | Variable ++ | Variable -- | While Prueba do Programa Prueba -> Variable <> 0 | Variable = 0 Analizar Ascendentemente While v<>0 do { y++; x++; v--; }

14 Gramáticas LR Gramáticas LR Variaciones: SLR, LALR, LR(k)
Left to Right de izquierda a derecha Rightmost production La producción de más a la derecha Variaciones: SLR, LALR, LR(k)

15 Tercer proyecto Compilador de programas while
Generando script de assembler para debug Tomando en cuenta los macros Fecha de entrega


Descargar ppt "Análisis Sintáctico Ascendente"

Presentaciones similares


Anuncios Google