Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
330,93 KB
Nội dung
Giáo trình Kiến trúc máy tính và Hệ điều hành 30 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG - Mục đích - Nội dung - Otomat hữuhạn đơn định - Bộ phân tích từ vựng - Bảng danh biểu Giáo trình Kiến trúc máy tính và Hệ điều hành 31 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 1. Mục đích - Chia cắt xâu vào (CT nguồn) thành dãy các từ tố. - Hai cách cài đặt • Sử dụng mộtlượtchoviệc phân tích từ vựng Æ dãy các token Æphân tích cú pháp. • Phân tích từ vựng dùng chung mộtlượt với phân tích cú pháp. Mộtlầnchỉ phát hiện1 token gọilàtừ tố tiếp đến. Giáo trình Kiến trúc máy tính và Hệ điều hành 32 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 2. Nội dung - Đọc xâu vào từng ký tự một Æ gom lại thành token đến khi gặpkýtự không thể kết hợp thành token. - Luôn luôn đọctrướcmộtkýtự. - Loạibỏ các ký tự trống và chú thích. - Chuyểnnhững thông tin củanhững từ tố (vănbản, mã phân loại) vừa phát hiệncho bộ phân tích cú pháp. - Phát hiệnlỗi. Giáo trình Kiến trúc máy tính và Hệ điều hành 33 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 2. Nội dung - Sự giao tiếpgiữabộ phântíchtừ vựng và bộ phân tích cú pháp CT nguồn Bộ phân tích từ vựng Gửitoken Bộ phân tích cú pháp Yêu cầutoken Bảng danh biểu Giáo trình Kiến trúc máy tính và Hệ điều hành 34 CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG 3. Otomat hữuhạn đơn định 3.1. Định nghĩa: M(Σ, Q, δ, q0, F) Σ: bộ chữ vào Q: tậphữuhạncáctrạng thái q0 ∈ Q: trạng thái đầu F ⊆ Q: tậpcáctrạng thái kết thúc δ: hàm chuyểntrạng thái có dạng δ(q,a)=p Vớiq,p∈ Q, a ∈ Σ ¾ δ(q,a)=p: nghĩalàở trạng thái q, đọc a, chuyển sang trạng thái p Giáo trình Kiến trúc máy tính và Hệ điều hành 35 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 3. Otomat hữuhạn đơn định 3.2. Biểudiễn các hàm chuyểntrạng thái Dùng bảng: sử dụng ma trận δ có: - Chỉ số hàng: trạng thái - Chỉ số cột: ký hiệuvào - Giá trị tạihàngq, cộta làtrạng thái p, sao cho δ(q,a)=p Giáo trình Kiến trúc máy tính và Hệ điều hành 36 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 3. Otomat hữuhạn đơn định 3.2. Biểudiễn các hàm chuyểntrạng thái Dùng bảng: Ví dụ: có hàm chuyểncủamộtOtomatnhư sau: δ(1,a)=2, δ(2,b)=2, δ(2,c)=2 δ abc 12 222 Giáo trình Kiến trúc máy tính và Hệ điều hành 37 CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG 3. Otomat hữuhạn đơn định 3.2. Biểudiễn các hàm chuyểntrạng thái Hình vẽ: - mỗitrạng thái q∈Q được đặttrongcácvòng tròn. - Trạng thái bắt đầu q0 có thêm dấu‘>’ởđầu. - Trạng thái kết thúc q∈F được đặttrongvòng tròn kép. - Các cung nốitừ trạng thái q sang trạng thái p có mang các nhãn a∈Σ, có nghĩa δ(q,a)=p Giáo trình Kiến trúc máy tính và Hệ điều hành 38 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 3. Otomat hữuhạn đơn định 3.2. Biểudiễn các hàm chuyểntrạng thái Hình vẽ: Ví dụ: có hàm chuyểncủamộtOtomatnhư sau: δ(1,a)=2, δ(2,b)=2, δ(2,c)=2 1 2 a b c Giáo trình Kiến trúc máy tính và Hệ điều hành 39 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 3. Otomat hữuhạn đơn định 3.2. Biểudiễn các hàm chuyểntrạng thái Nhậnxét: - Biểudiễn hàm chuyểntrạng thái bằng hình vẽ có ưu điểmhơn. Trong hình vẽ ta xác định đầy đủ tấtcả các thành phần của Otomat. - Biểudiễnbằng bảng xác định hàm chuyểntrạng thái, tậpcáctrạng thái, bộ chữ vào nhưng không phân biệt được trạng thái bắt đầ uvàtrạng thái kết thúc. [...]... Giáo trình Kiến trúc máy tính và Hệ điều hành 44 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 4 Lập bộ phân tích từ vựng 4.1 Phương pháp mô phỏng - Mỗi trạng thái: tương ứng với một đoạn chương trình - Nối tiếp các trạng thái: nối tiếp 2 đoạn chương trình tương ứng - Lệnh rẽ nhánh Giáo trình Kiến trúc máy tính và Hệ điều hành Lệnh lặp 45 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN... Q: {0, 1, 2} q0: 0 F : {2} δ: δ(0,trắng)=0, δ(0,0)=1, δ(0,1)=1, Giáoδ(1,0)=1, δ(1,1)=1, δ(1,trắng) =2 trình Kiến trúc máy tính và Hệ 42 điều hành TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 3 Otomat hữu hạn đơn định 3.4 Ví dụ: Xác định Otomat đoán nhận số nhị phân 0 trắng 1 0 0|1 1 Giáo trình Kiến trúc máy tính và Hệ điều hành trắng 2 43 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH...TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 3 Otomat hữu hạn đơn định 3.3 Hoạt động của Otomat - Đọc các ký hiệu của xâu vào từ trái sang phải, bắt đầu từ trạng thái q0 - Mỗi bước đọc một ký hiệu thì chuyển sang trạng thái theo δ Có thể đọc xong hay không đọc xong xâu vào Giáo trình Kiến trúc máy tính và Hệ điều hành 40 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 3 Otomat... Giáo trình Kiến trúc điều hành Ma:=thuc; End; Ma:=danhbieu; End; End; {case} End; {tuvung} 47 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 4.Lập bộ phân tích từ vựng 4.1 Phương pháp điều khiển bằng bảng Var bangchuyen: array[1 6,loaikytu] of 0 6; Mảng này được nạp dữ liệu như sau: trang Conso Cham Ttu Ccai 1 1 2 4 5 6 2 0 2 3 0 0 3 0 3 0 0 0 4 0 3 0 0 0 5 0 0 0 0 0 0 0 6 6 Giáo trình. .. định 3.3 Hoạt động của Otomat - Đọc xong xâu vào đến một trạng thái p∈F thì xâu vào được đoán nhận (xâu đúng) - Đọc xong xâu vào mà rơi vào trạng thái p∉F thì xâu vào không được đoán nhận - Không đọc xong xâu vào (do δ rơi vào điểm không xác định) thì xâu vào không được đoán nhận Giáo trình Kiến trúc máy tính và Hệ điều hành 41 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 3 Otomat hữu... trangthaitiep:= bangchuyen[trangthai, Giáo trình Kiến trúc máy tính và Hệ loaikytu(kytutiep)]; điều hành Until trangthaitiep=0; 49 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 5 Bảng danh biểu Gồm các token và các thuộc tính của token Chỉ số Token Trị từ vựng 02 Num 45 03 Id A 04 Id B 06 Relation < 07 Then Các thuộc tính khác Then 01 05 08 Giáo trình Kiến trúc máy tính và Hệ operatorđiều... tính khác Then 01 05 08 Giáo trình Kiến trúc máy tính và Hệ operatorđiều hành + 50 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 6 Các cấu trúc dữ liệu cho bảng các danh biểu - Tổ chức tuần tự: mảng, danh sách liên kết, danh sách móc nối - Tổ chức cây tìm kiếm nhị phân Giáo trình Kiến trúc máy tính và Hệ điều hành 51 ... loaikytu(kytutiep)=trang do Dockytu(kytutiep); Case loaikytu(kytutiep) of Conso: Begin Repeat I:=i+1; x[i]:=kytutiep; Dockytu(kytutiep); Giáo trình Kiến trúc máy tính và Hệ Until Loaikytu(kytutiep)conso; 46 …{Cho một thông báo lỗi} điều hành Ma:=nguyen; TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 4.Lập bộ phân tích từ vựng 4.1 Phương pháp mô phỏng If loaikytu(kytutiep)=cham then Begin Repeat I:=i+1;... 0 4 0 3 0 0 0 5 0 0 0 0 0 0 0 6 6 Giáo trình Kiến trúc máy tính và Hệ 0 điều hành 0 48 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG 4 Lập bộ phân tích từ vựng 4.1 Phương pháp điều khiển bằng bảng Procedure Tuvung(var ma:loaituto; var x:xau); Case trangthai of Begin 2: ma:=nguyen; trangthai:=1; 3: ma:=thuc; trangthaitiep:=bangchuyen[trangthai, loaikytu(kytutiep)]; 4: baoloi; 5:ma:=toantu; . ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 3. Otomat hữuhạn đơn định 3 .2. Biểudiễn các hàm chuyểntrạng thái Dùng bảng: Ví dụ: có hàm chuyểncủamộtOtomatnhư sau: δ(1,a) =2, δ (2, b) =2, δ (2, c) =2 δ abc 12 222 Giáo. chuyểncủamộtOtomatnhư sau: δ(1,a) =2, δ (2, b) =2, δ (2, c) =2 1 2 a b c Giáo trình Kiến trúc máy tính và Hệ điều hành 39 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG 2. PHÂN TÍCH TỪ VỰNG 3. Otomat hữuhạn đơn định 3 .2. Biểudiễn. đoạn chương trình - Nốitiếp các trạng thái: nốitiếp2 đoạnchương trình tương ứng - - Lệnh rẽ nhánh Lệnh lặp Giáo trình Kiến trúc máy tính và Hệ điều hành 46 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀNẴNG CHƯƠNG