Tôi đang đọc một cuốn sách biên dịch và kinda nhầm lẫn khi nó nói "một ngữ pháp thuộc tính S cũng là một ngữ pháp thuộc tính L". Không thể hiểu được. Ai đó có thể làm cho nó rõ ràng (một ví dụ nên được tuyệt vời). Cảm ơn.Ngữ pháp do S phân bổ và ngữ pháp được quy cho L là gì?
Trả lời
ngữ phápvăn phạm tiếng L-do là một loại đặc biệt của văn phạm thuộc tính. Chúng cho phép các thuộc tính được đánh giá trong một sự truyền tải trái sang phải của cây cú pháp trừu tượng. Kết quả là, việc đánh giá thuộc tính trong các ngữ pháp được phân bổ theo L có thể được kết hợp một cách thuận tiện trong phân tích cú pháp từ trên xuống. Nhiều ngôn ngữ lập trình được phân bổ theo L. Các loại trình biên dịch đặc biệt, các trình biên dịch hẹp, được dựa trên một số dạng ngữ pháp do L gán. Đây là những so sánh với các ngữ pháp do S phân bổ. Được sử dụng để tổng hợp mã.
S-Được phân phối là một lớp văn phạm thuộc tính đặc trưng bởi không có thuộc tính kế thừa. Các thuộc tính thừa kế, phải được truyền từ nút cha sang nút con của cây cú pháp trừu tượng trong quá trình phân tích ngữ nghĩa của quá trình phân tích cú pháp, là một vấn đề cho phân tích cú pháp từ dưới lên vì trong phân tích cú pháp từ dưới lên, các nút cha của cú pháp trừu tượng cây được tạo ra sau khi tạo ra tất cả con cái của họ. Việc đánh giá thuộc tính trong các ngữ pháp do S phân bổ có thể được kết hợp một cách thuận tiện trong cả phân tích cú pháp từ trên xuống và phân tích cú pháp từ dưới lên. Yacc dựa trên cách tiếp cận do S phân bổ.
Ngữ pháp bất kỳ do S cũng là ngữ pháp do L gán.
Trong đánh giá thuộc tính ngữ pháp được phân bổ L có thể được thực hiện trong quá trình truyền tải từ trái sang phải. Vì trong các thuộc tính ngữ pháp do S phân bổ không được kế thừa, nó không ngăn cản bạn làm điều đó. Như vậy, bạn có thể nói một ngữ pháp do S phân bổ phù hợp với đặc điểm của ngữ pháp L.
Đơn giản chỉ cần S-do Grammar là Grammar đã tổng hợp đúng loại ngữ pháp có nghĩa là chỉ có thuộc tính giá trị gia tăng trong suốt cây phân tích cú pháp
nơi như L-quy cho văn phạm có thể đều đã được tổng hợp cũng như Kế thừa ngữ pháp với một số các quy tắc giống như quy tắc chuyển giao thừa kế từ luôn sang trái. Tôi nghĩ rằng nó sẽ giúp bạn ra ngoài.
- 1. Ngữ pháp thích hợp cho ngôn ngữ này là gì?
- 2. Ngữ pháp chấp nhận bộ trống theo quy tắc S-> S
- 3. Phân tích cú pháp cây và thông tin ngữ pháp
- 4. Ngữ pháp ANTLR cho Scala?
- 5. Phân cấp cho các ngữ pháp sau: LL1, SLR1, LR0, LR1 và LALR1 là gì?
- 6. Ngữ pháp tổng hợp
- 7. NLTK Bối cảnh Ngữ pháp tự do miễn phí
- 8. Ngữ pháp ngôn ngữ tự nhiên và tên do người dùng nhập
- 9. boost :: tinh thần soạn thảo ngữ pháp từ ngữ pháp
- 10. Điều gì về ngữ pháp luận và trình phân tích cú pháp tối thiểu để nhận ra nó?
- 11. Ngữ pháp ngữ cảnh miễn phí cho C
- 12. C#: Quy tắc ngữ pháp dành cho tiếng Anh?
- 13. Tiện ích biên tập ngữ pháp cho ngữ pháp không có ngữ cảnh trong Java
- 14. Sự khác nhau giữa cú pháp và ngữ nghĩa của ngôn ngữ lập trình là gì?
- 15. Phân tích cú pháp ngữ pháp bằng OCaml
- 16. Ngữ pháp PEG không phải là đệ quy trái cho một "biểu thức"
- 17. Loại trình phân tích cú pháp nào cần thiết cho ngữ pháp này?
- 18. Trình phân tích ngữ pháp miễn phí ngữ pháp (CFG) trong Go
- 19. Viết một trình phân tích ngữ pháp và tạo một cây phân tích
- 20. Phân tích cú pháp ngữ pháp không có ngữ cảnh bằng Python
- 21. Chuyển ngữ pháp thành Chomsky Normal Form?
- 22. Công cụ viết ngữ pháp
- 23. Ngữ pháp không có ngữ cảnh mô tả các biểu thức chính quy?
- 24. Cú pháp và ngữ pháp URL có thể Đầy đủ
- 25. C# ANTLR ngữ pháp?
- 26. Cách tốt nhất để phân tích ngữ pháp đơn giản?
- 27. Dấu ngoặc kép với khai báo trả về quy tắc phân tích cú pháp đầu tiên trong ngữ pháp ANTLR4
- 28. Chuyển đổi một ngữ pháp vào LL (1) ngữ pháp: một số vấn đề
- 29. Tìm kiếm trình phân tích cú pháp ngữ nghĩa tốt cho ngôn ngữ tiếng Nga
- 30. Xtext: ngữ pháp cho ngôn ngữ có khoảng trắng quan trọng/ngữ nghĩa