Perché Tomita ha creato GLR e non ha usato Earley?


11

Quando guardo Earley che analizza, sembra molto elegante e mi chiedo perché le tecniche GLR diventino popolari? Qualcuno sa cosa c'era che non andava in Earley che analizzava il fatto che Tomita avesse creato GLR? Prestazione? Qualsiasi pubblicazione su queste discussioni è molto apprezzata.


5
GLR consente l'analisi deterministica su porzioni della grammatica. Vedi ad esempio Elkhound ( scottmcpeak.com/elkhound ), dove questa idea viene abbracciata. Per i linguaggi naturali, tuttavia, non è così chiaro che GLR sia migliore di Earley.
Sylvain,

1
@Sylvain: mi sembra una risposta ...
Joshua Grochow,

Risposte:


5

Meglio tardi che mai.

Se ho capito bene, Earley è top-down e impiegherà tempo e memoria a creare articoli Earley per ogni produzione in una data S (i). Ciò significa che per il linguaggio naturale, in S (0) creiamo e controlliamo un elemento Earley per ogni possibile parola che inizia una frase, e ce ne sono parecchie.

Ma GLR è dal basso verso l'alto, quindi assumendo in modo efficiente le ricerche di tabella / stato con hash, il primo token seleziona le successive transizioni in tempo costante.

Questo è vero in particolare per le lingue naturali, con l'enorme numero di produzioni distinte. Ma non è davvero significativo per i linguaggi di programmazione, con un set molto piccolo di produzioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.