2012-05-17 37 views
8

Để hiểu thêm về các trình phân tích cú pháp và ngữ pháp, tôi đang tìm kiếm một ví dụ (hy vọng đơn giản) của một ngôn ngữ là LL (2) nhưng không LL (1). Đó là, một ngôn ngữ có thể được tạo ra bởi một LL (2) ngữ pháp nhưng không phải bởi bất kỳ LL (1) ngữ pháp.LL (2) ngôn ngữ không phải là LL (1)

Có ngôn ngữ hữu ích trong lớp học đó không? Tôi có thể tưởng tượng một ngôn ngữ máy tính là LL (2) nhưng không phải LL (1)?

+1

http://dl.acm.org/citation.cfm?id=805431 (xem tóm tắt) –

+0

Cảm ơn, nhưng đây không phải là những gì tôi hỏi. Tôi biết rằng các ngôn ngữ đó tồn tại. Tôi chỉ muốn xem một trong số đó là một ví dụ. – Norswap

Trả lời

12

Ví dụ được đề cập trong cuốn sách liên kết trong câu trả lời Gunther của:

S -> a S A | epsilon 
A -> a^k b S | c 

là một ngữ pháp mô tả một ngôn ngữ LL (k + 1) không phải là LL (k). Cụ thể,

S -> a S A | epsilon 
A -> a b S | c 

là một ngữ pháp mô tả ngôn ngữ LL (2) không phải là LL (1).

Các vấn đề liên quan