Anlisis Sintctico Predictivo No Recursivo Seccin 4 4

  • Slides: 9
Download presentation
Análisis Sintáctico Predictivo No Recursivo Sección 4. 4

Análisis Sintáctico Predictivo No Recursivo Sección 4. 4

Modelo analizador sintáctico predictivo no recursivo ENTRADA PILA X Y a + b $

Modelo analizador sintáctico predictivo no recursivo ENTRADA PILA X Y a + b $ Programa para análisis sintáctico predictivo SALIDA Z $ Tabla de análisis sintáctico M M[X, +]

Ejemplo E => TE’ E’ => +TE’ | nil T => FT’ T’ =>

Ejemplo E => TE’ E’ => +TE’ | nil T => FT’ T’ => *FT’ | nil F => (E) | id

Primero y Siguiente n Primero(α) n n n Conjunto de terminales Que inician las

Primero y Siguiente n Primero(α) n n n Conjunto de terminales Que inician las cadenas de α Si α =>* nil n nil también está en Primero(α)

Primero y Siguiente n Siguiente(A) n n Conjunto de terminales a Que pueden aparecer

Primero y Siguiente n Siguiente(A) n n Conjunto de terminales a Que pueden aparecer a la derecha de A S =>* αAaβ para algún α y β Obsérvar n n S =>* αABCaβ a pertenece a Siguiente(A) si: n n B =>* nil C =>* nil

Construcción de tabla M n n M [X, x] X no terminal, x terminal

Construcción de tabla M n n M [X, x] X no terminal, x terminal Para cada A => α n Para cada terminal a de Primero(α) n n Añadir A => α a M[A, a] Si nil está en Primero(α) n Añadir A => α a M[A, b] n n Si nil está en Primero(α) y $ en Siguiente(A) n n Para cada b de Siguiente(A) Añadir A => α a M[A, $] Toda entrada vacía de M es error

Ejemplo n Construír M para P => i E t PP’ | a P’

Ejemplo n Construír M para P => i E t PP’ | a P’ => e P | nil E => b

Gramáticas LL(1) n n Gramática con M sin entradas múltiples L de “left” n

Gramáticas LL(1) n n Gramática con M sin entradas múltiples L de “left” n n L de “left derivative” n n Se analiza la entrada de izquierda a derecha Se deriva por la izquierda (1) de que solo se analiza un token anticipadamente

Propiedades LL(1) n n No pueden ser ambiguas No pueden ser recursivas por la

Propiedades LL(1) n n No pueden ser ambiguas No pueden ser recursivas por la izquierda