This page last changed on Dec 12, 2006 by juanca.

Una gramática es fuertemente LL(k) si para todo par de producciones A → α y A → β en P se cumple que:

FIRSTk(α FOLLOWk(A)) ∩ FIRSTk(β FOLLOWk(A)) = ∅

también:

FIRSTk(α) ⋅k FOLLOWk(A) ∩ FIRSTk(β) ⋅k FOLLOWk(A) = ∅

Todas las gramáticas LL(1) son fuertemente LL(1), pero no todas las gramáticas LL(k) con k > 1 son fuertemente LL(k). Por ejemplo, la siguiente gramática es LL(2) (cumple con la definición de LLk para k=2), pero no es fuertemente LL(2):

S → aAaa | bAba
A → b | ε

El lenguaje generado por esa gramática es:

abaa
aaa
bbba
bba

Secuencias Predictivas para Lenguajes Fuertemente LL(k)

Las secuencias predictivas para las producciones A → α son las concatenaciones:

LAk(A → α) = FIRSTk(α) ⋅k FOLLOWk(A)

Dichas secuencias indican que cuando:

  1. A está en el tope de la pila
  2. El símbolo en la secuencia de entrada pertenece a LAk(A → α).

La producción a emplear en ese paso de la derivación es sin duda A → α.

Document generated by Confluence on Oct 04, 2010 11:24