Phân tích cú pháp giải quyết thay đổi - câu hỏi


10

Gần đây tôi đã bắt gặp một bài báo mô tả kỹ thuật phân tích cú pháp được đề cập trong tiêu đề. Thật không may, thuật ngữ được sử dụng trong bài báo nói trên có phần vượt quá tầm hiểu biết của tôi, vì vậy tôi đã cố gắng nắm bắt thuật toán xây dựng một cách trực quan hơn. Tôi tin rằng tôi đã thành công ( bài thuyết trình này là nguồn gốc của khoảnh khắc ah-ha), nhưng một xác minh về tính đúng đắn từ một người nào đó quen thuộc với kỹ thuật hoặc thuật ngữ có trong đó sẽ được đánh giá cao.

Tôi sẽ mô tả việc tôi đưa ra giải pháp (nếu nó chính xác, tôi tin rằng nó có thể giúp ích cho những người khác đang cố gắng hiểu kỹ thuật này) và đặt câu hỏi bổ sung sau đó. Để đảm bảo không có sự hiểu lầm, tôi sẽ sử dụng ký hiệu chuẩn sau: , A , B , C , . . . N , . . . X , Y , Z N T , α , βa,b,c,...TA,B,C,...N...X,Y,ZNT và, như trong giấy, Một i w để biểu thị số quy tắc i . Tuy nhiên, có lẽ tôi sẽ sử dụng các tên khác nhau cho các khái niệm so với giấy gốc.α,β,γ,...{NT}Aiωi

Ngoài ra, trong suốt mô tả, quan hệ tương đương được sử dụng.κ0

Xây dựng

Có hai loại mặt hàng bên trong automaton phân tích cú pháp: LR đơn giản (0) mặt hàng có dạng mà tôi gọi là mặt hàng thay đổi và các mặt hàng có dạng A i alpha beta , m , n mà tôi gọi là quyết tâm vật phẩm ; những nói phân tích cú pháp để đẩy n ký tự sao lưu các dòng đầu vào và sau đó giảm số quy tắc m khi biểu tượng đầu tiên của β .AiαβAiαβ,m,nnmβ

S0S$S0S$

q

  1. AiαβqXqXβ

  2. AiωBjαAβ,i,0BjαAβ

  3. Aiαβ,m,nXβXNXjωXjωAiαβ,m,nXqXqCiαXβ,m,nqCiαXβ,m,n+1q

  4. Aiω,m,nBjαAβ,m,nBjαAβ

Tất nhiên, đây chỉ là một bản phác thảo; trên thực tế, việc đóng cửa nhà nước phải được tính toán trước và chỉ sau đó chúng ta mới có thể xử lý các chuyển đổi / thay đổi và nghị quyết.

r0,0$

Câu hỏi

Rõ ràng, điều đầu tiên là liệu quy trình được mô tả ở trên có chính xác hay không.

κκ0FOLLOWLM

Và cuối cùng là về giải quyết xung đột. Bài viết mô tả tốt những gì cấu thành sự bất cập trong máy tự động giải quyết thay đổi; Có cách nào để giải quyết những bất cập này, tương tự như cách giải quyết xung đột trong trình phân tích cú pháp LR truyền thống không? Có thể một cái gì đó như giải quyết xung đột kiểu yacc thông qua quyền ưu tiên và kết hợp có thể được thực hiện trong trình tạo trình phân tích cú pháp ShRe không?

Cảm ơn nếu bạn đọc tất cả điều này và bất kỳ câu trả lời sẽ được đánh giá rất cao :)


đề nghị chuyển câu hỏi này sang cstheory. đối với bài báo, nó dường như là một thuật toán rất phức tạp mà "có lẽ" (?) chưa được thực hiện bởi bất kỳ ai. ý tưởng chính dường như là kết hợp giao diện tùy ý mà còn với phân tích thời gian tuyến tính ...? nhưng có bao nhiêu ứng dụng sẽ ổn với thuật toán siêu tuyến đơn giản hơn, chuẩn hơn? Bất kỳ ý tưởng, ứng dụng nào sẽ làm việc tốt hơn với phương pháp này? bạn có một hoặc biết một?
vzn

1
Một bài tập lý thuyết rất hay (mặc dù tôi không nhìn vào các kỹ thuật). Cho rằng toàn bộ sức mạnh của LR (k) thường không được sử dụng, người ta có thể tự hỏi về tác động thực tế. Tôi thấy có 2 vấn đề với loại công việc này: (1) do thuật toán trở nên phức tạp hơn, liệu tâm trí con người có thể xoay vòng ngữ pháp và hiểu được hậu quả khi nó không hoạt động. Một thực tế thường thấy là các kỹ thuật rất tinh vi rất bổ ích khi chúng hoạt động, nhưng làm cho mọi thứ tồi tệ hơn khi chúng không hoạt động. (2) nó sẽ là tuyến tính trong trường hợp khi các thuật toán CF chung không tuyến tính.
babou

Câu trả lời:


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.