Tại sao Tomita tạo GLR và không sử dụng Earley?


11

Khi tôi nhìn vào phân tích Earley, nó trông rất thanh lịch, và tôi tự hỏi tại sao kỹ thuật GLR trở nên phổ biến? Có ai biết điều gì đã xảy ra với Earley phân tích cú pháp mà Tomita đã tạo GLR không? Hiệu suất? Bất kỳ ấn phẩm về các cuộc thảo luận này được đánh giá cao.


5
GLR cho phép phân tích cú pháp xác định trên các phần của ngữ pháp. Xem ví dụ Elkhound ( scottmcpeak.com/elkhound ), nơi ý tưởng này được chấp nhận. Tuy nhiên, đối với các ngôn ngữ tự nhiên, không rõ ràng rằng GLR tốt hơn Earley.
Sylvain

1
@Sylvain: nghe có vẻ như là một câu trả lời cho tôi ...
Joshua Grochow

Câu trả lời:


5

Muộn còn hơn không.

Nếu tôi hiểu chính xác, Earley là từ trên xuống, và sẽ dành thời gian và bộ nhớ để tạo ra các vật phẩm Earley cho mỗi sản phẩm tại một S (i) nhất định. Điều này có nghĩa là đối với ngôn ngữ tự nhiên, trong S (0), chúng tôi tạo và kiểm tra một mục Earley cho mỗi từ có thể bắt đầu một câu và có khá nhiều từ đó.

Nhưng GLR là từ dưới lên, do đó, giả sử việc tra cứu bảng / trạng thái được băm hiệu quả, mã thông báo đầu tiên chọn (các) chuyển tiếp tiếp theo trong thời gian không đổi.

Điều này đặc biệt đúng với các ngôn ngữ tự nhiên, với số lượng lớn các sản phẩm riêng biệt. Nhưng không thực sự có ý nghĩa đối với các ngôn ngữ lập trình, với bộ sản phẩm rất nhỏ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.