BÀI GIẢNG CHƯƠNG TRÌNH DỊCH
lượt xem 11
download
Chiến lược phân tích top-down: Quá trình xây dựng cây phân tích cú pháp theo lối từ gốc đến lá. Xuất phát từ gốc là ký tự bắt đầu, cố gắng áp dụng các sản xuất để xây dựng một cây có tập các nhãn của lá từ trái qua phải là xâu vào
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: BÀI GIẢNG CHƯƠNG TRÌNH DỊCH
- BÀI GIẢNG CHƯƠNG TRÌNH DỊCH Bộ môn khoa học máy tính 1
- Chương 3: Phân tích cú pháp 1. Các chiến lược phân tích 2. Phân tích top-down 3. Phân tích bottom-up 4. Phân tích bảng CYK 5. Phân tích LL 6. Phân tích đệ quy trên xuống Trang 2
- 1. Các chiến lược phân tích Sử dụng văn phạm phi ngữ cảnh (VPPNC) để biểu diễn cú pháp của NNLT Cơ sở phân tích cú pháp đối với VPPNC là bài toán thành viên: Cho G = (VT, VN, S, P), L(G) = {w VT*: S * w}, xâu vào w Câu hỏi: wL(G) ??? Trang 3
- 1. Các chiến lược phân tích Chiến lược phân tích top-down: Quá trình xây dựng cây phân tích cú pháp theo lối từ gốc đến lá. Xuất phát từ gốc là ký tự bắt đầu, cố gắng áp dụng các sản xuất để xây dựng một cây có tập các nhãn của lá từ trái qua phải là xâu vào Trang 4
- 1. Các chiến lược phân tích Chiến lược phân tích bottom-up Xuất phát từ các lá có nhãn là các ký tự của xâu vào, ta cố gắng áp dụng các sản xuất để xây dựng các nút trong. Nếu xây dựng được một nút gốc là ký tự bắt đầu thì được cây suy dẫn cho xâu vào Trang 5
- 1. Các chiến lược phân tích Có 2 phương pháp Phân tích quay lui: trong quá trình xây dựng cây cú pháp thực hiện thử lần lượt, có bước quay lại để thử sản xuất khác Phân tích tất định: trong quá trình xây dựng cây cú pháp ta luôn lựa chọn đúng sản xuất cần dùng. Trang 6
- 2. Phân tích top-down Input: Văn phạm G=(VT,VN,S,P), một xâu vào x Output: Cây suy dẫn cho xâu vào x hoặc trả lời x không được đoán nhận Thuật toán: đánh số các sản xuất 1, 2, 3… Bước 1: Xây dựng một cây chỉ có nút S làm gốc, gọi S là nút hoạt động và ký hiệu cần phân tích là ký hiệu đầu tiên trên xâu vào. Trang 7
- 2. Phân tích top-down Bước 2: Nếu nút hoạt động là một kí hiệu không kết thúc A: Chọn sản xuất đầu tiên có A làm vế trái để tạo ra k con trực tiếp của A (AX1X2…Xk), sau đó lấy X1 làm nút hoạt động. Nếu k = 0 (A) thì nút hoạt động là nút bên phải của A trên cây. Trang 8
- 2. Phân tích top-down Bước 2: Nếu nút hoạt động là kí hiệu kết thúc a thì sẽ so sánh a với kí hiệu cần phân tích: Trùng nhau: nút hoạt động là nút bên phải của a trên cây và kí hiệu cần phân tích là kí hiệu tiếp theo trên xâu vào. Không trùng: quay lại 1 bước để thử một sản xuất khác. Nếu tất cả sản xuất đã được thử thì quay lại bước trước đó. Trang 9
- 2. Phân tích top-down Quá trình dừng lại khi: Tạo ra cây suy dẫn cho xâu vào Thử hết khả năng nhưng không xây dựng lên cây suy dẫn. Tức là xâu không được đoán nhận Điều kiện dừng: văn phạm không có đệ qui trái Trang 10
- 2. Phân tích top-down Ví dụ: Cho văn phạm sau S cAd A ab | a Xâu vào là cad Đánh số sản xuất: (1) : S cAd (2) : A ab (3) : A a Trang 11
- 2. Phân tích top-down Quá trình phân tích top-down Trang 12
- 3. Phân tích bottom-up Đây là phương pháp gạt thu gọn (shift Reduce Parsing). Sử dụng Stack S dùng để chứa kí hiệu của văn phạm cần phân tích. Mỗi bước thực hiện một trong hai hành động gạt hoặc thu gọn. Luôn thử thu gọn trước khi gạt Trang 13
- 3. Phân tích bottom-up Input: Văn phạm G không có -sản xuất và A + A, xâu vào x Output: x có được đoán nhận hay không? Thuật toán: Bước 1: Gạt ký tự đầu tiên của xâu x vào Stack S Bước 2: Lặp Xét mọi xâu có thể trên đỉnh Stack. Ví dụ: Stack có abcd d, cd, bcd, abcd. Trang 14
- 3. Phân tích bottom-up Nếu tồn tại A thì thực hiện thu gọn: Lấy tất cả các ký hiệu của xâu trong Stack. Đẩy ký hiệu A vào Stack. Trong trường hợp có nhiều xâu cùng thỏa mãn thì đánh số để thử lần lượt. Nếu không thể thu gọn thì gạt ký hiệu tiếp theo trên xâu vào x vào Stack. Trang 15
- 3. Phân tích bottom-up Nếu đã gạt hết ký hiệu trên x mà trong Stack không phải còn S thì quay lui lại địa chỉ sau cùng mà ở đó đã tiến hành thu gọn (khôi phục hiện trạng xâu vào, Stack tại thời điểm trước khi thu gọn) Nếu còn một thu gọn nào khác có thể thì sẽ tiến hành thử theo thu gọn đó. Trang 16
- 3. Phân tích bottom-up Thuật toán dừng khi đã gạt hết các ký hiệu trên xâu vào và trong Stack chỉ có một ký hiệu S. Khi đó ta kết luận xâu vào x được đoán nhận. Ngược lại, khi thử hết các trường hợp mà trong Stack không chứa chỉ S thì kết luận xâu x không được đoán nhận. Trang 17
- 3. Phân tích bottom-up Ví dụ: Cho văn phạm S aABe A Abc | b B d Xâu vào: abbcde Trang 18
- Trang 19
- 4. Phân tích bảng CYK Dạng chuẩn Chomsky VPPNC ở dạng chuẩn Chomsky nếu mọi sản xuất có dạng A BC hoặc A a Mọi văn phạm không chứa - sản xuất thì đều có thể chuyển về dạng chuẩn Chomsky. Trang 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Chương trình dịch - ĐH Bách khoa Đà Nẵng
268 p | 262 | 33
-
Bài giảng Chương trình dịch - Bài 12: Thuật toán phân tích CYK
19 p | 180 | 12
-
Bài giảng Chương trình dịch: Bài giảng 7 - Nguyễn Phương Thái
20 p | 85 | 7
-
Bài giảng Chương trình dịch: Bài 3 - Trương Xuân Nam
33 p | 67 | 6
-
Bài giảng Chương trình dịch: Bài giảng 6 - Nguyễn Phương Thái
35 p | 77 | 6
-
Bài giảng Chương trình dịch - Chương 4: Dịch trực tiếp cú pháp
27 p | 63 | 5
-
Bài giảng Chương trình dịch: Bài giảng 9 - Nguyễn Phương Thái
27 p | 66 | 5
-
Bài giảng Chương trình dịch: Phần 1 - ĐH Sư phạm kỹ thuật Nam Định
75 p | 28 | 4
-
Bài giảng Chương trình dịch - Chương 5: Kiểm tra kiểu
11 p | 54 | 4
-
Bài giảng Chương trình dịch - Chương 1: Giới thiệu về chương trình dịch
28 p | 54 | 4
-
Bài giảng Chương trình dịch: Bài 5 - Trương Xuân Nam
14 p | 70 | 4
-
Bài giảng Chương trình dịch: Bài 4 - Trương Xuân Nam
55 p | 79 | 4
-
Bài giảng Chương trình dịch: Bài 2 - Trương Xuân Nam
33 p | 98 | 4
-
Bài giảng Chương trình dịch: Bài 1 - Trương Xuân Nam
42 p | 98 | 4
-
Bài giảng Chương trình dịch - ĐH Đà Nẵng
213 p | 61 | 4
-
Tập bài giảng Chương trình dịch
218 p | 33 | 4
-
Bài giảng Chương trình dịch: Bài 6 - Trương Xuân Nam
22 p | 69 | 3
-
Bài giảng Chương trình dịch: Bài 7 - Trương Xuân Nam
21 p | 75 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn