1 / 33

Organización de Lenguajes y Compiladores 1

Organización de Lenguajes y Compiladores 1. Método de análisis sintáctico LL1. Método Descendente LL(1). La primera L representa el tipo de lectura de la cadena de entrada Left (de izquierda a derecha) La segunda L representa la que la derivación Left, por la izquierda.

leroy
Download Presentation

Organización de Lenguajes y Compiladores 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Organización de Lenguajes y Compiladores 1 Método de análisis sintáctico LL1

  2. Método Descendente LL(1) La primera L representa el tipo de lectura de la cadena de entrada Left (de izquierda a derecha) La segunda L representa la que la derivación Left, por la izquierda. Y el 1, es el número de símbolos de entrada para analizar por anticipado.

  3. Método Descendente LL(1) Ninguna gramática ambigua o recursiva por la izquierda puede ser LL(1).

  4. Método Descendente LL(1) Buffer de Entrada Cadena de entrada a analizar, finaliza con el carácter $ Pila Símbolos gramaticales que se van utilizando Tabla de Análisis Sintáctico Matriz bidimensional que sirve para el análisis Cadena de Salida Cadena de Salida posterior al análisis

  5. LL(1)

  6. Pasos para el Método LL(1) Escribir adecuadamente la gramática Calcular el First y el Follow Construir la tabla de Análisis Sintáctico Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis

  7. Pasos para el Método LL(1) 1. Escribir adecuadamente la gramática Para poder utilizar un analizador descendente no recursivo la gramática debe cumplir con: No debe tener ambigüedad No debe ser recursiva por la izquierda Debe estar factorizada

  8. Pasos para el Método LL(1) 2. Calcular el First / Primero

  9. Pasos para el Método LL(1) 2. Calcular el Follow / Siguiente

  10. Pasos para el Método LL(1) Símbolo Terminal Símbolos No Terminales 3. Construir la tabla de Análisis Sintáctico

  11. Pasos para el Método LL(1) 3. Construir la tabla de Análisis Sintáctico • Para cada A → α, ejecute 2 y 3. • Para cada terminal a del First (α), añádase A → α en la posición M[A , a]. • Si ε esta en el First (α), añádase A → ε a M[A , b ] para cada terminal b de Follow(A). • Cada entrada vacía hágase ERROR.

  12. Pasos para el Método LL(1) Se colocan las producciones que corresponden a los datosobtenidos del cálculo del first. 3. Construir la tabla de Análisis Sintáctico

  13. Pasos para el Método LL(1) 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis

  14. Ejemplo LL(1) Partiendo de la Gramática: S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S 1. Es una gramática adecuada para el análisis LL(1)

  15. Ejemplo LL(1) S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S Para calcular el first Se usan Los no terminales del lado izquierdo de la producción 2. Cálculo del First / Primero

  16. Ejemplo LL(1) S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S Para calcular el first Se usan Los no terminales del lado izquierdo de la producción 2. Cálculo del First / Primero

  17. Ejemplo LL(1) S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S Para calcular el first Se usan Los no terminales del lado izquierdo de la producción 2. Cálculo del First / Primero

  18. Ejemplo LL(1) S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S 2. Cálculo del First / Primero

  19. Ejemplo LL(1) S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S Para cacular el follow Se usan Los no terminales del lado izquierdo de la producción 2. Cálculo del Follow / Siguiente

  20. Ejemplo LL(1) S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S Para cacular el follow Se usan Los no terminales del lado izquierdo de la producción 2. Cálculo del Follow / Siguiente

  21. Ejemplo LL(1) S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S Para cacular el follow Se usan Los no terminales del lado izquierdo de la producción 2. Cálculo del Follow / Siguiente

  22. Ejemplo LL(1) S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S Se usan Los no terminales del lado derecho de la producción 2. Cálculo del Follow / Siguiente

  23. Ejemplo LL(1) Construir la tabla de Análisis Sintáctico S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S Para cada terminal a del First (α), añádase A → α en la posición M[A , a].

  24. Ejemplo LL(1) Construir la tabla de Análisis Sintáctico S → ‘(‘ A ‘)’ A → C B B → ‘;’ A | ε C → ‘x’ | S • Si ε esta en el First (α), añádase A → ε a M[A , b ] para cada terminal b de Follow(A).

  25. Ejemplo LL(1) Construir la tabla de Análisis Sintáctico • Cada entrada vacía hágase ERROR

  26. Ejemplo LL(1) 3. Construir la tabla de Análisis Sintáctico

  27. Pasos para el Método LL(1) Colocar $ y el símbolo inicial Colocar la cadena de entrada y $ 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis

  28. Pasos para el Método LL(1) Se busca el símbolo terminal y el no terminal, remplazándolo por la producción que le corresponda en la tabla. Colocándola de izquierda a derecha 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis

  29. Pasos para el Método LL(1) Cuando se llega a una coincidencia, se eliminan ambos, y se continua con el análisis 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis

  30. Pasos para el Método LL(1) Cuando se llega a una coincidencia, se eliminan ambos, y se continua con el análisis 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis

  31. Se acepta la cadena si se logra eliminar de la pila y la entrada, todos los símbolos. De lo contrario no se acepta la cadena.

  32. RESUMEN Pasos para el método LL1 Escribir adecuadamente la gramática Calcular el First y el Follow Construir la tabla de Análisis Sintáctico Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis

More Related