Mengapa Tomita membuat GLR dan tidak menggunakan Earley?

11

Ketika saya melihat parsing Earley, itu terlihat sangat elegan, dan saya bertanya-tanya mengapa teknik GLR menjadi populer? Adakah yang tahu apa yang salah dengan Earley parsing yang Tomita buat GLR? Performa? Setiap publikasi pada diskusi ini sangat dihargai.

Wickoo
sumber
5
GLR memungkinkan penguraian deterministik pada bagian tata bahasa. Lihat misalnya Elkhound ( scottmcpeak.com/elkhound ), di mana ide ini dianut. Namun untuk bahasa alami, tidak begitu jelas bahwa GLR lebih baik daripada Earley.
Sylvain
1
@ Silvain: terdengar seperti jawaban untuk saya ...
Joshua Grochow

Jawaban:

5

Lebih baik terlambat daripada tidak sama sekali.

Jika saya mengerti dengan benar, Earley adalah top-down, dan akan menghabiskan waktu dan memori membuat item Earley untuk setiap produksi pada S (i) yang diberikan. Ini berarti bahwa untuk bahasa alami, dalam S (0) kami membuat dan memeriksa item Earley untuk setiap kata yang mungkin memulai kalimat, dan ada cukup banyak.

Tetapi GLR adalah bottom-up, sehingga dengan asumsi pencarian tabel / state hash yang efisien, token pertama memilih transisi berikutnya dalam waktu yang konstan.

Ini berlaku khusus untuk bahasa alami, dengan sejumlah besar produksi yang berbeda. Tetapi tidak terlalu berarti untuk bahasa pemrograman, dengan rangkaian produksi yang sangat kecil.

Jeff
sumber