Nếu kí hiệu trung gian được chọn để biến đổi luôn là trái nhất của α thì ta gọi phương án này là suy dẫn trái. Định nghĩa tương tự cho suy dẫn phải.[r]
(1)CHƯƠNG TRÌNH DỊCH
(2)1. Suy dẫn
2. Biểu diễn suy dẫn cấu trúc cây
3. Văn phạm có nhập nhằng
4. Các chiến lược phân tích cú pháp
Chiến lược thử-sai (quay lui): top-down, bottom-up
Chiến lược quy hoạch động: CYK, Earley,…
(3)Suy dẫn
(4) Khái niệm: αAβ ⇒ αγβ (gọi αAβ suy dẫn αγβ)
nếu A → γ luật sinh, α β chuỗi ký hiệu thuộc ngơn ngữ L đó
Nếu α1 ⇒ α2 ⇒ … ⇒ αn ta nói α1 suy dẫn αn
Hệ thống kí hiệu:
⇒ suy dẫn trực tiếp
⇒* suy dẫn qua nhiều bước
⇒+ suy dẫn qua nhiều bước
Một số tính chất:
α ⇒* α với ∀α
(5)Suy dẫn trái suy dẫn phải
Bài tốn phân tích cú pháp thực chất tốn tìm chuỗi suy dẫn S ⇒* α ⇒* β, đó:
S kí hiệu gốc
α chuỗi có chứa kí hiệu trung gian
β chuỗi gồm kí hiệu kết thúc
Dễ nhận thấy trình suy dẫn trên:
Có nhiều phương án suy dẫn từ S thành β
Một kí hiệu trung gian thuộc α trước sau phải bị biến đổi luật sinh
Nếu kí hiệu trung gian chọn để biến đổi ln trái α ta gọi phương án suy dẫn trái
(6) Cho văn phạm G với luật sinh: S → E + S | E
E → | | | | | | | | | | ( S )
Xâu vào: W = (1 + + (3 + 4)) + 5
Suy dẫn trái từ S thành W sau:
S E + S ( S ) + S ( E + S ) + S ( + S ) + S ( + E + S ) + S ( + + S ) + S
( + + E ) + S ( + + ( S ) ) + S
( + + ( E + S ) ) + S ( + + ( + S ) ) + S ( + + ( + E ) ) + S ( + + ( + ) ) + S
(7)Suy dẫn trái suy dẫn phải
Suy dẫn phải từ S thành W sau:
S E + S E + E E + ( S ) + ( E + S ) + ( E + E + S ) + ( E + E + E ) + 5
( E + E + ( S ) ) + ( E + E + ( E + S ) ) + 5
( E + E + ( E + E ) ) + ( E + E + ( E + ) ) + ( E + E + ( + ) ) + ( E + + ( + ) ) + ( + + ( + ) ) +
Câu hỏi: qua ví dụ q trình biến đổi từ S thành W, nên sử dụng cách mã hóa để
(8)Biểu diễn suy dẫn cấu trúc cây
(9)Cây phân tích (parse tree)
Cây phân tích thể cấu trúc của suy dẫn
Nút gốc kí hiệu bắt đầu
Các nút kí hiệu kết thúc
Các nút ln kí hiệu trung gian
Cây khơng thể thứ tự thực suy dẫn trực tiếp
• Việc duyệt tạo thành thứ tự thực suy dẫn
• Suy dẫn trái tương đương với trình
S
E + S
E
( S )
E + S
E + S
E
( S )
E + S
2
3
(10) Cây cú pháp trừu tượng (abstract syntax tree) loại bỏ thông tin khơng cần thiết phân tích
Minh họa q trình nhóm kí hiệu với
Thích hợp với việc thực tính tốn tổ hợp thông tin
E + S
E
( S )
E + S
E + S
E
( S )
E + S