Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
312,08 KB
Nội dung
Giáo trình Kiến trúc máy tính và Hệ điều hành 97 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Vănphạm ưutiêntoántử Vănphạm phi ngữ cảnh thỏamãncác ĐK: - Không có 2 sảnxuất có cùng vế phải - Không có vế phảilàε - Không có 2 ký hiệuchưakết thúc đứng liền nhau Giáo trình Kiến trúc máy tính và Hệ điều hành 98 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Mối quan hệưutiêngiữa các ký hiệu Vớia, b ∈Σ có: - a < b : a kém ưutiênhơnb - a= b: a ưutiênbằng b - a > b: a ưutiênhơnb ⋅ ⋅ ⋅ Giáo trình Kiến trúc máy tính và Hệ điều hành 99 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Qui tắcxácđịnh mối quan hệ (1) ∃ Sx mà vế phảicódạng αabβ hay αaCbβ (2) ∃ Sx mà vế phảicódạng αaBβ mà B⇒ + bγ hay B⇒ + Cbγ (3) ∃ Sx mà vế phảicódạng αAbβ mà A⇒ + γa hay A⇒ + γaC a=b . a<b . a>b . Giáo trình Kiến trúc máy tính và Hệ điều hành 100 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Qui tắcxácđịnh mối quan hệ (4) S⇒ + γahay S⇒ + γaC hay S⇒ + aγ hay S⇒ + Caγ Vớia, b∈Σ; A,B,C∈∆; α, β, γ∈(Σ∪∆)* a >$ . Giáo trình Kiến trúc máy tính và Hệ điều hành 101 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Thuậttoá n Sử dụng: 1 stack và 1 Buffer Khởitạo: - stack: $ - Buffer: x$ Lặp: If (Stack là $S) và (Buffer là $) Then -x đúng cú pháp củavpG -Dừng vòng lặp Giáo trình Kiến trúc máy tính và Hệ điều hành 102 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Thuậttoá n Else {giả sử k/h kết thúc gần đỉnh stack nhất là a và buffer là b} If (a>b) Then -Tìmcánβ ởđỉnh stack -Lấycánβ ra khỏistack - ĐẩyA vàostack vớiAÆβ . Giáo trình Kiến trúc máy tính và Hệ điều hành 103 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Thuậttoá n Else If (a<b) or (a=b)Then D/c b từ BufferÆ Stack Else -Báolỗix khôngđúng cú pháp G -Dừng vòng lặp . . Giáo trình Kiến trúc máy tính và Hệ điều hành 104 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Ví dụ: SÆif DK then L ; DK Æ true | false L Æ write(ID) | read(ID) ID Æa | b Xâu x: if true then read(a); có đúng cú pháp vp trên? Giáo trình Kiến trúc máy tính và Hệ điều hành 105 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.1. Phương pháp ưutiêntoántử ¾ Ví dụ - Xác định tấtcả các mối quan hệ - Phân tích Giáo trình Kiến trúc máy tính và Hệ điều hành 106 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1. Phương pháp phân tích cú pháp dướilên 1.2. Phương pháp thứ tự yếu [...]... NẴNG CHƯƠNG 4 CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1 Phương pháp phân tích cú pháp dưới lên 1.3 Phương pháp SLR (LR(0)) Giáo trình Kiến trúc máy tính và Hệ điều hành 107 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 4 CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 1 Phương pháp phân tích cú pháp dưới lên 1 .4 Phương pháp Canonical LR (LR(1)) Giáo trình Kiến trúc máy tính và Hệ điều hành 108 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG... pháp phân tích cú pháp dưới lên 1 .4 Phương pháp Canonical LR (LR(1)) Giáo trình Kiến trúc máy tính và Hệ điều hành 108 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 4 CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP 2 Phương pháp phân tích cú pháp trên xuống Giáo trình Kiến trúc máy tính và Hệ điều hành 109 . Buffer Khởitạo: - stack: $ - Buffer: x$ Lặp: If (Stack là $S) và (Buffer là $) Then -x đúng cú pháp củavpG -Dừng vòng lặp Giáo trình Kiến trúc máy tính và Hệ điều hành 102 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG. b} If (a>b) Then -Tìmcánβ ởđỉnh stack -Lấycánβ ra khỏistack - ĐẩyA vàostack vớiAÆβ . Giáo trình Kiến trúc máy tính và Hệ điều hành 103 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP. (a=b)Then D/c b từ BufferÆ Stack Else -Báolỗix khôngđúng cú pháp G -Dừng vòng lặp . . Giáo trình Kiến trúc máy tính và Hệ điều hành 1 04 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH