0
Análisis Sintáctico Predictivo No Recursivo Sección 4.4 Leonel Morales Díaz [email_address] Copyright 2008 by Leonel Moral...
Modelo analizador sintáctico predictivo no recursivo Programa para análisis sintáctico predictivo Tabla de análisis sintác...
Ejemplo <ul><li>E  =>  TE’  </li></ul><ul><li>E’  =>  + TE’  |  nil </li></ul><ul><li>T  =>  FT’  </li></ul><ul><li>T’  =>...
Primero y Siguiente <ul><li>Primero( α) </li></ul><ul><ul><li>Conjunto de terminales </li></ul></ul><ul><ul><li>Que inicia...
Primero y Siguiente <ul><li>Siguiente(A) </li></ul><ul><ul><li>Conjunto de terminales a </li></ul></ul><ul><ul><li>Que pue...
Construcción de tabla M <ul><li>M [X, x] X no terminal, x terminal </li></ul><ul><li>Para cada A => α </li></ul><ul><ul><l...
Ejemplo <ul><li>Construír M para </li></ul><ul><li>P  =>  i  E  t  PP’  |  a </li></ul><ul><li>P’  =>  e  P  |  nil </li><...
Gramáticas LL(1) <ul><li>Gramática con M sin entradas múltiples </li></ul><ul><li>L de “left” </li></ul><ul><ul><li>Se ana...
Propiedades LL(1) <ul><li>No pueden ser ambiguas </li></ul><ul><li>No pueden ser recursivas por la izquierda </li></ul>
Upcoming SlideShare
Loading in...5
×

Análisis Sintactico Predictivo No Recursivo

3,960

Published on

El análisis sintáctico predictivo no recursivo utiliza una tabla donde a cada símbolo de entrada le corresponde una producción de la gramática, con esto se evitan los procesos recursivos.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,960
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
63
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Análisis Sintactico Predictivo No Recursivo"

  1. 1. Análisis Sintáctico Predictivo No Recursivo Sección 4.4 Leonel Morales Díaz [email_address] Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados Disponible en: http://www.ingenieriasimple.com/compiladores
  2. 2. Modelo analizador sintáctico predictivo no recursivo Programa para análisis sintáctico predictivo Tabla de análisis sintáctico M a + b $ X Y Z $ PILA ENTRADA SALIDA M[ X ,+]
  3. 3. Ejemplo <ul><li>E => TE’ </li></ul><ul><li>E’ => + TE’ | nil </li></ul><ul><li>T => FT’ </li></ul><ul><li>T’ => * FT’ | nil </li></ul><ul><li>F => ( E ) | id </li></ul>
  4. 4. Primero y Siguiente <ul><li>Primero( α) </li></ul><ul><ul><li>Conjunto de terminales </li></ul></ul><ul><ul><li>Que inician las cadenas de α </li></ul></ul><ul><ul><li>Si α =>* nil </li></ul></ul><ul><ul><ul><li>nil también está en Primero(α) </li></ul></ul></ul>
  5. 5. Primero y Siguiente <ul><li>Siguiente(A) </li></ul><ul><ul><li>Conjunto de terminales a </li></ul></ul><ul><ul><li>Que pueden aparecer a la derecha de A </li></ul></ul><ul><ul><li>S =>* αAaβ para algún α y β </li></ul></ul><ul><ul><li>Obsérvar </li></ul></ul><ul><ul><ul><li>S =>* αABCaβ </li></ul></ul></ul><ul><ul><ul><li>a pertenece a Siguiente(A) si: </li></ul></ul></ul><ul><ul><ul><ul><li>B =>* nil </li></ul></ul></ul></ul><ul><ul><ul><ul><li>C =>* nil </li></ul></ul></ul></ul>
  6. 6. Construcción de tabla M <ul><li>M [X, x] X no terminal, x terminal </li></ul><ul><li>Para cada A => α </li></ul><ul><ul><li>Para cada terminal a de Primero(α) </li></ul></ul><ul><ul><ul><li>Añadir A => α a M[A,a] </li></ul></ul></ul><ul><ul><li>Si nil está en Primero(α) </li></ul></ul><ul><ul><ul><li>Añadir A => α a M[A,b] </li></ul></ul></ul><ul><ul><ul><ul><li>Para cada b de Siguiente(A) </li></ul></ul></ul></ul><ul><ul><li>Si nil está en Primero(α) y $ en Siguiente(A) </li></ul></ul><ul><ul><ul><li>Añadir A => α a M[A,$] </li></ul></ul></ul><ul><li>Toda entrada vacía de M es error </li></ul>
  7. 7. Ejemplo <ul><li>Construír M para </li></ul><ul><li>P => i E t PP’ | a </li></ul><ul><li>P’ => e P | nil </li></ul><ul><li>E => b </li></ul>
  8. 8. Gramáticas LL(1) <ul><li>Gramática con M sin entradas múltiples </li></ul><ul><li>L de “left” </li></ul><ul><ul><li>Se analiza la entrada de izquierda a derecha </li></ul></ul><ul><li>L de “left derivative” </li></ul><ul><ul><li>Se deriva por la izquierda </li></ul></ul><ul><li>(1) de que solo se analiza un token anticipadamente </li></ul>
  9. 9. Propiedades LL(1) <ul><li>No pueden ser ambiguas </li></ul><ul><li>No pueden ser recursivas por la izquierda </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×