Bài giảng môn học Trình biên dịch - Chương 6: Xử lí ngữ nghĩa
Số trang: 19
Loại file: pdf
Dung lượng: 131.96 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Xử lý ngữ nghĩa có hai cách: kiểm tra tĩnh (static check) và kiểm tra động (dynamic check). Trong chương này chúng ta chỉ bàn đến kiểm tra ngữ nghĩa tĩnh. Xử lý ngữ nghĩa tĩnh bao gồm: Truyền thuộc tính, kiểm tra kiểu, kiểm tra trình tự điều khiển, kiểm tra tính duy nhất, kiểm tra mối liên hệ của tên, xử lý các phát biểu goto tham khảo trước.
Nội dung trích xuất từ tài liệu:
Bài giảng môn học Trình biên dịch - Chương 6: Xử lí ngữ nghĩaCHÖÔNG 6XÖÛ LYÙ NGÖÕ NGHÓAXöû lyù ngöõ nghóa coù hai caùch: kieåm tra tónh (static check) vaø kieåm trañoäng (dynamic check).Trong chöông naøy chuùng ta chæ baøn ñeán kieåm tra ngöõ nghóa tónh.Xöû lyù ngöõ nghóa tónh bao goàm:1. Truyeàn thuoäc tính2. Kieåm tra kieåu3. Kieåm tra trình töï ñieàu khieån4. Kieåm tra tính duy nhaát5. Kieåm tra moái lieân heä cuûa teân6. Xöû lyù caùc phaùt bieåu goto tham khaûo tröôùc.chuoãicaâycaâyBoä phaânBoä xöû lyùtoken tích cuù phaùp cuù phaùp ngöõ nghóa cuù phaùpSinh maõtrunggianmaõtrung gianHình 6.1. Vò trí cuûa boä xöû lyù ngöõ nghóa.6.1. Truyeàn thuoäc tính1. Maõ trung gianMaõ trung gian coù nhieàu loaïi: maõ cambridge, maõ Balan ngöôïc, maõ boätam (triple code), maõ boä töù (quadruple code).Boä töù cho bieåu thöùc soá hoïcDaïng toång quaùt: (, , )Moät caùch bieåu thò bieán taïm ôû baûng danh bieåu:Teân:roãngLoaïi: 4Kieåu döõ lieäu: tuøy theo kieåu cuûa caùc toaùn haïng tham gia pheùptoaùn.Ñòa chæ : ñòa chæ töông ñoái. Ñòa chæ naøy ñöôïc gaùn khi sinh maõ.Moät soá maõ boä töù cho caùc pheùp toaùn hoïcJMP (i, 0, 0)nhaûy ñeán boä töù coù chæ soá iJPG (i, p1, p2) nhaûy ñeán boä töù i neáu toaùn haïng thöù nhaátlôùn hôn toaùn haïng haias1 (p1, p2, 0) gaùn trò p1 cho p2. p2 laø bieán ñônFLT (p1, p2, 0) Ñoåi trò cuûa p1 thaønh soá thöïc, gaùn sang p2FIX (p1, p2, 0) Ñoåi trò cuûa p1 thaønh soá nguyeân, gaùn sang p26.2. Xöû lyù ngöõ nghóa vôùi phaân tích cuù phaùp töø döôùi leân1. Vaán ñeà truyeàn thuoäc tínhThí duï 6.1. Chuùng ta coù vaên phaïm G. → id := → + | → * | < factor>< factor >→ id | (< expr>)n12n11n10n9n8n2 n1 id1 :=id2* (n5 n7 n4 n6 n3 id3+id4Hình 6.2. Caây cuù phaùp A := X * (R + Q).)Token1234Baûng danh bieåuTrò töø vöïng Kieåu döõ lieäuididididAXRQthöïcthöïcthöïcthöïc- Truyeàn thuoäc tính- Sinh ra bieán taïm khi thu giaûm2. Phöông phaùp thöïc hieän söï truyeàn thuoäc tínhÑeå thöïc hieän xöû lyù ngöõ nghóa trong quaù trình phaân tích cuù phaùp, chuùngta seõ duøng moät stack ñaëc bieät goàm caùc phaàn:A: kyù hieäu vaên phaïm (töôïng tröng cho moät danh hieäu)B: coù trò 0 hoaëc 1 (kyù hieäu 1 laø bieán taïm)C: con troû chæ ñeán baûng danh bieåu (thöïc chaát laø vò trí cuûa danhbieåu ôû trong baûng danh bieåu
Nội dung trích xuất từ tài liệu:
Bài giảng môn học Trình biên dịch - Chương 6: Xử lí ngữ nghĩaCHÖÔNG 6XÖÛ LYÙ NGÖÕ NGHÓAXöû lyù ngöõ nghóa coù hai caùch: kieåm tra tónh (static check) vaø kieåm trañoäng (dynamic check).Trong chöông naøy chuùng ta chæ baøn ñeán kieåm tra ngöõ nghóa tónh.Xöû lyù ngöõ nghóa tónh bao goàm:1. Truyeàn thuoäc tính2. Kieåm tra kieåu3. Kieåm tra trình töï ñieàu khieån4. Kieåm tra tính duy nhaát5. Kieåm tra moái lieân heä cuûa teân6. Xöû lyù caùc phaùt bieåu goto tham khaûo tröôùc.chuoãicaâycaâyBoä phaânBoä xöû lyùtoken tích cuù phaùp cuù phaùp ngöõ nghóa cuù phaùpSinh maõtrunggianmaõtrung gianHình 6.1. Vò trí cuûa boä xöû lyù ngöõ nghóa.6.1. Truyeàn thuoäc tính1. Maõ trung gianMaõ trung gian coù nhieàu loaïi: maõ cambridge, maõ Balan ngöôïc, maõ boätam (triple code), maõ boä töù (quadruple code).Boä töù cho bieåu thöùc soá hoïcDaïng toång quaùt: (, , )Moät caùch bieåu thò bieán taïm ôû baûng danh bieåu:Teân:roãngLoaïi: 4Kieåu döõ lieäu: tuøy theo kieåu cuûa caùc toaùn haïng tham gia pheùptoaùn.Ñòa chæ : ñòa chæ töông ñoái. Ñòa chæ naøy ñöôïc gaùn khi sinh maõ.Moät soá maõ boä töù cho caùc pheùp toaùn hoïcJMP (i, 0, 0)nhaûy ñeán boä töù coù chæ soá iJPG (i, p1, p2) nhaûy ñeán boä töù i neáu toaùn haïng thöù nhaátlôùn hôn toaùn haïng haias1 (p1, p2, 0) gaùn trò p1 cho p2. p2 laø bieán ñônFLT (p1, p2, 0) Ñoåi trò cuûa p1 thaønh soá thöïc, gaùn sang p2FIX (p1, p2, 0) Ñoåi trò cuûa p1 thaønh soá nguyeân, gaùn sang p26.2. Xöû lyù ngöõ nghóa vôùi phaân tích cuù phaùp töø döôùi leân1. Vaán ñeà truyeàn thuoäc tínhThí duï 6.1. Chuùng ta coù vaên phaïm G. → id := → + | → * | < factor>< factor >→ id | (< expr>)n12n11n10n9n8n2 n1 id1 :=id2* (n5 n7 n4 n6 n3 id3+id4Hình 6.2. Caây cuù phaùp A := X * (R + Q).)Token1234Baûng danh bieåuTrò töø vöïng Kieåu döõ lieäuididididAXRQthöïcthöïcthöïcthöïc- Truyeàn thuoäc tính- Sinh ra bieán taïm khi thu giaûm2. Phöông phaùp thöïc hieän söï truyeàn thuoäc tínhÑeå thöïc hieän xöû lyù ngöõ nghóa trong quaù trình phaân tích cuù phaùp, chuùngta seõ duøng moät stack ñaëc bieät goàm caùc phaàn:A: kyù hieäu vaên phaïm (töôïng tröng cho moät danh hieäu)B: coù trò 0 hoaëc 1 (kyù hieäu 1 laø bieán taïm)C: con troû chæ ñeán baûng danh bieåu (thöïc chaát laø vò trí cuûa danhbieåu ôû trong baûng danh bieåu
Tìm kiếm theo từ khóa liên quan:
Trình biên dịch Bài giảng Trình biên dịch Ngôn ngữ lập trình Chương trình dịch Đặc tả ngôn ngữ lập trình Xử lí ngữ nghĩaTài liệu liên quan:
-
Chuyên đề: Nghiên cứu Ngôn ngữ hình thức, Văn phạm phi ngữ cảnh và Automata đẩy xuống
84 trang 372 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 277 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 268 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 268 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 227 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 218 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 210 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 188 0 0 -
Giáo trình Lập trình C căn bản: Phần 1
64 trang 170 0 0