Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
506,81 KB
Nội dung
CHƯƠNG TRÌNH DỊCH BÀI 7: BIỂU DIỄN CÂY VÀ CÁC CHIẾN LƯỢC PHÂN TÍCH CÚ PHÁP Nội dung Suy dẫn Biểu diễn suy dẫn cấu trúc Văn phạm có nhập nhằng 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,… Chiến lược tất định (deterministic): LL, LR,… Bài tập TRƯƠNG XUÂN NAM Phần Suy dẫn TRƯƠNG XUÂN NAM Suy dẫn Khái niệm: αAβ ⇒ αγβ (gọi αAβ suy dẫn αγβ) 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 qua bước (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 ∀α α ⇒* β β ⇒* γ α ⇒* γ TRƯƠNG XUÂN NAM 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 Định nghĩa tương tự cho suy dẫn phải TRƯƠNG XUÂN NAM Suy dẫn trái suy dẫn phải Cho văn phạm G với luật sinh: S→E+S|E E → số | ( S ) Xâu vào: W = (1 + + (3 + 4)) + Suy dẫn trái từ S thành W sau: SE+S(S)+S(E+S)+S(1+S)+S (1+E+S)+S(1+2+S)+S (1+2+E)+S(1+2+(S))+S (1+2+(E+S))+S(1+2+(3+S))+S (1+2+(3+E))+S(1+2+(3+4))+S (1+2+(3+4))+E(1+2+(3+4))+5 TRƯƠNG XUÂN NAM Suy dẫn trái suy dẫn phải Suy dẫn phải từ S thành W sau: SE+SE+EE+5(S)+5(E+S)+5 (E+E+S)+5(E+E+E)+5 (E+E+(S))+5(E+E+(E+S))+5 (E+E+(E+E))+5(E+E+(E+4))+5 (E+E+(3+4))+5(E+2+(3+4))+5 (1+2+(3+4))+5 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 để lưu trữ q trình suy dẫn sử dụng thơng tin để in q trình suy dẫn nào? TRƯƠNG XUÂN NAM Phần Biểu diễn suy dẫn cấu trúc TRƯƠNG XUÂN NAM Cây phân tích (parse tree) S Cây phân tích thể cấu trúc suy dẫn Nút gốc kí hiệu bắt đầu Các nút ln 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 duyệt theo thứ tự giữa-trái-phải TRƯƠNG XUÂN NAM S + E ( S ) E E + S E + S E ( S ) E + S E Cây cú pháp trừu tượng 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 S ( S ) E E + S E + + + + + TRƯƠNG XUÂN NAM S + E S E ( S ) E + S E 4 10 Suy dẫn vs cấu trúc Suy dẫn cách biểu diễn thông tin chiều Cấu trúc cách biểu diễn thông tin chiều Cấu trúc minh họa tương quan thành phần cấu trúc không gian Cây phân tích mơ tả đầy đủ việc biến đổi từ kí hiệu gốc thành chuỗi cần phân tích, phù hợp cho mục đích sử dụng Cây cú pháp gạt bỏ thành phần trung gian, tập trung mơ tả tương quan kí hiệu kết thúc, cấu trúc phù hợp với việc tổ hợp thông tin TRƯƠNG XUÂN NAM 11 Phần Văn phạm có nhập nhằng TRƯƠNG XUÂN NAM 12 Văn phạm có nhập nhằng Một văn phạm thiếu chặt chẽ dẫn tới việc có nhiều phân tích khác với chuỗi đầu vào Ví dụ văn phạm: S → S + S | S * S | số Phân tích xâu vào: + * + Kết 1: SS+S1+S1+S*S 1+2*S1+2*3 Kết 2: SS*SS+S*S1+S*S 1+2*S1+2*3 TRƯƠNG XUÂN NAM * * + 13 Văn phạm có nhập nhằng Văn phạm tồn chuỗi w có từ phân tích tương ứng trở lên gọi văn phạm có nhập nhằng Vấn đề lớn văn phạm có nhập nhằng tính đa nghĩa chuỗi w (có nhiều cách hiểu), hệ khơng thể tính xác ngữ nghĩa w + * + =7 * TRƯƠNG XUÂN NAM =9 14 Khử nhập nhằng Việc khử nhập nhằng thực tạo văn phạm dựa văn phạm cũ hai văn phạm khơng hồn tồn tương đương Có nhiều chiến lược khử nhập nhằng Thêm vào biến trung gian Đưa ràng buộc văn phạm (ví dụ quy định mức độ ưu tiên phép tốn) Ví dụ văn phạm: S → S + S | S * S | số Khử nhập nhằng cách thêm biến trung gian: S→S+T|T T → T * số | số TRƯƠNG XUÂN NAM 15 Phần Các chiến lược phân tích cú pháp TRƯƠNG XUÂN NAM 16 Các chiến lược phân tích cú pháp Chiến lược phân tích cú pháp chia thành nhóm: Chiến lược thử-sai (quay lui): top-down, bottom-up Chiến lược quy hoạch động: CYK, Earley,… Chiến lược tất định (deterministic): LL, LR,… Ngồi cịn có số phương pháp khác dựa đặc điểm ngôn ngữ để áp dụng kĩ thuật hiệu (ví dụ phân tích theo thứ bậc tốn tử) Một số phương pháp tổng quát (như Earley chẳng hạn), đa số phương pháp làm việc với văn phạm có đặc thù riêng TRƯƠNG XUÂN NAM 17 Chiến lược thử-sai Chiến lược thử-sai quay lui nghĩ tới giải tốn phân tích văn phạm Các chiến lược đơn giản thử áp dụng luật suy dẫn đạt chuỗi suy dẫn mục tiêu Chia thành cách tiếp cận ngược nhau: Phương pháp top-down: • Nhìn từ phân tích từ xuống • Cố gắng từ S biến đổi dần w Phương pháp bottom-up: • Nhìn từ phân tích từ lên • Cố gắng thu gọn từ w S TRƯƠNG XUÂN NAM 18 Chiến lược thử-sai Cả hai phương pháp có hạn chế văn phạm đầu vào: Top-down yêu cầu văn phạm đầu vào không đệ quy trái Bottom-up yêu cầu văn phạm đầu vào khơng có sản xuất rỗng (A → ) khơng có suy dẫn dạng A + A Các chiến lược có ý nghĩa mặt lý thuyết chậm hạn chế văn phạm, nhiên trình thử-sai đem lại nhiều gợi ý cho thuật toán khác Loại bỏ hạn chế văn phạm: phương pháp vạn Loại bỏ quay lui: phương pháp tất định TRƯƠNG XUÂN NAM 19 Chiến lược quy hoạch động Ý tưởng quy hoạch động nhắm tới mục tiêu: Xây dựng phương pháp khơng có hạn chế văn phạm đầu vào Lưu trữ lại chuỗi phân tích để tránh phải quay lui Thuật tốn CYK: Cần biến đổi văn phạm dạng chuẩn Chomsky Văn phạm khơng có suy dẫn rỗng Khơng quay lui Thuật tốn Earley: vạn hơn, khơng có ràng buộc văn phạm, khơng quay lui TRƯƠNG XUÂN NAM 20 Chiến lược tất định Ý tưởng tất định theo lựa chọn khác: hi sinh phong phú văn phạm để đổi lấy tốc độ Đặc điểm chung: Các văn phạm có ràng buộc định Dựa phân tích trước văn phạm để tiên đốn tình xảy Xây dựng bảng phương án, việc cần thực gặp tình cụ thể Đây chiến lược mà tất chương trình dịch sử dụng ưu tốc độ (không quay lui) TRƯƠNG XUÂN NAM 21 Phần Bài tập TRƯƠNG XUÂN NAM 22 Bài tập Xác định ngôn ngữ sinh văn phạm: S→S(S)S| S→aSb|bSa| S→+SS|*SS|a S→0S1| Xây dựng văn phạm sản sinh ngôn ngữ: Số nhị phân lẻ Số ngun khơng dấu Số ngun có dấu Số thực, số ngun khơng có dấu Các từ đơn tiếng Việt TRƯƠNG XUÂN NAM 23 Bài tập Khử nhập nhằng văn phạm mô tả biểu thức số học để phép nhân chia ưu tiên phép cộng trừ S → S A S | ( S ) | - S | số A→ +| - | * | / Xét văn phạm: S → a S b S | b S a S | Chứng minh văn phạm nhập nhằng cách xây dựng hai suy dẫn trái cho chuỗi w = abab Xây dựng suy dẫn phải tương ứng cho abab Xây dựng phân tích tương ứng cho abab *Văn phạm sinh ngôn ngữ nào? TRƯƠNG XUÂN NAM 24 Bài tập Xét văn phạm: S→(L)|a L→L,S|S a) Tìm ký hiệu kết thúc, khơng kết thúc b) Tìm phân tích cú pháp cho chuỗi sau i (a, a) ii (a, (a, a)) iii (a, ((a, a), (a, a) )) c) Xây dựng dẫn xuất trái cho câu b) d) Xây dựng dẫn xuất phải cho câu b) e) *Văn phạm sinh ngôn ngữ nào? TRƯƠNG XUÂN NAM 25 ... cấu trúc Văn phạm có nhập nhằng 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,… Chiến lược tất định (deterministic):... phân tích cú pháp Chiến lược phân tích cú pháp chia thành nhóm: Chiến lược thử-sai (quay lui): top-down, bottom-up Chiến lược quy hoạch động: CYK, Earley,… Chiến lược tất định (deterministic):... pháp top-down: • Nhìn từ phân tích từ xuống • Cố gắng từ S biến đổi dần w Phương pháp bottom-up: • Nhìn từ phân tích từ lên • Cố gắng thu gọn từ w S TRƯƠNG XUÂN NAM 18 Chiến lược thử-sai Cả