lunes, 13 de marzo de 2017

Ejercicio LR Parsing sección 6.2, "Constructing the Collection of Accessible Sets of Items"

Ejercicio propuesto por el enunciado

The reader should verify that these two items 
[ACCEPT → LIST .]
[LIST → LIST . ',' ELEMENT]
are the only items valid for the viable prefix LIST.

La verificación será realizada a partir de los items generados por la gramática
ACCEPT → LIST
LIST → LIST ',' ELEMENT
LIST → ELEMENT
ELEMENT → 'a'
ELEMENT → 'b'
estableciendo γ y α a valores apropiados según cada ítem y comprobando que los 2 del enunciado son los únicos que validan los datos del enunciado contra la definición de valid item. La tabla siguiente comprende la resolución del ejercicio según lo explicado.

Ítem
γ
α
β
A
γ.A
¿γA válido? / ¿Hay alguna forma de hacer γα=LIST para γA?
ACCEPT → ⋅ LIST
LIST
''
LIST
ACCEPT
LIST ACCEPT
no / sí
ACCEPT → LIST ⋅
''
LIST
''
ACCEPT
ACCEPT
sí / sí
LIST → ⋅ LIST ',' ELEMENT
LIST
''
LIST ',' ELEMENT
LIST
LIST LIST
no / sí
LIST → LIST ⋅ ',' ELEMENT
''
LIST
',' ELEMENT
LIST
LIST
sí / sí
LIST → LIST ',' ⋅ ELEMENT
''
LIST ','
ELEMENT
LIST
LIST
sí / no
LIST → LIST ',' ELEMENT ⋅
''
LIST ',' ELEMENT
''
LIST
LIST
sí / no
LIST → ⋅ ELEMENT
LIST
''
ELEMENT
LIST
LIST LIST
no / sí
LIST → ELEMENT ⋅
''
ELEMENT
''
LIST
LIST
sí / no
ELEMENT → ⋅ 'a'
LIST
''
'a'
ELEMENT
LIST ELEMENT
no / sí
ELEMENT → 'a' ⋅
''
'a'
''
ELEMENT
ELEMENT
sí / no
ELEMENT → ⋅ 'b'
LIST
''
'b'
ELEMENT
LIST ELEMENT
no / sí
ELEMENT → 'b' ⋅
''
'b'
''
ELEMENT
ELEMENT
sí / no



miércoles, 1 de marzo de 2017

Ejercicio propuesto en el artículo "LR Parsing" en la sección 6.1, "Sets of Items"

Nada mejor que hacer los ejercicios propuestos por el texto que uno lee para afianzar conocimientos. En este caso, se trata del ejercicio del artículo LR Parsing, A.V. Aho & S. C. Johnson, propuesto en la sección 6.1, "Sets of Items", bajo el enunciado:

The reader can (and should) verify that the state corresponding to the viable prefix LIST ',' is associated with the set of items:
[LIST → LIST ',' . ELEMENT]
[ELEMENT → . 'a']
[ELEMENT→ . 'b']



Por definición, dado un viable prefix γα, compuesto por cualquier cadena derivable a partir de γ seguido de cualquier cadena derivable de α, cualquier ítem de la forma [A → α.β] es válido si γA es un viable prefix.



  1.  γ = '', α = LIST ',', β = 'ELEMENT', A = LIST
    Luego, γA = LIST, es un viable prefix válido.
  2. γ = LIST ',', α = '', β = 'a', A = ELEMENT
    Luego, γA = LIST ',' ELEMENT, es un viable prefix válido.
  3. γ = LIST, α = '', β = 'b', A = ELEMENT
    Luego, γA = LIST ',' ELEMENT, es un viable prefix válido.


Bueno, a lo mejor el ejercicio completo debe constar de las comprobaciones con todos los items de la gramática.