Đang chuẩn bị liên kết để tải về 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ĩa

Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ

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. | CHÖÔNG 6 XÖÛ LYÙ NGÖÕ NGHÓA Xöû 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ính 2. Kieåm tra kieåu 3. Kieåm tra trình töï ñieàu khieån 4. Kieåm tra tính duy nhaát 5. Kieåm tra moái lieân heä cuûa teân 6. Xöû lyù caùc phaùt bieåu goto tham khaûo tröôùc. chuoãi caây caây Boä phaân Boä xöû lyù token tích cuù phaùp cuù phaùp ngöõ nghóa cuù phaùp Sinh maõ trung gian maõ trung gian Hình 6.1. Vò trí cuûa boä xöû lyù ngöõ nghóa. 6.1. Truyeàn thuoäc tính 1. Maõ trung gian Maõ 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ïc Daïng toång quaùt: (, , ) Moät caùch bieåu thò bieán taïm ôû baûng danh bieåu: Teân:roãng Loaïi: 4 Kieåu döõ lieäu: tuøy theo kieåu cuûa caùc toaùn haïng tham gia pheùp toaù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ïc JMP (i, 0, 0) nhaûy ñeán boä töù coù chæ soá i JPG (i, p1, p2) nhaûy ñeán boä töù i neáu toaùn haïng thöù nhaát lôùn hôn toaùn haïng hai as1 (p1, p2, 0) gaùn trò p1 cho p2. p2 laø bieán ñôn FLT (p1, p2, 0) Ñoåi trò cuûa p1 thaønh soá thöïc, gaùn sang p2 FIX (p1, p2, 0) Ñoåi trò cuûa p1 thaønh soá nguyeân, gaùn sang p2 6.2. Xöû lyù ngöõ nghóa vôùi phaân tích cuù phaùp töø döôùi leân 1. Vaán ñeà truyeàn thuoäc tính Thí duï 6.1. Chuùng ta coù vaên phaïm G. → id := → + | → * | → id | () n12 n11 n10 n9 n8 n2 n1 id1 := id2 * ( n5 n7 n4 n6 n3 id3 + id4 Hình 6.2. Caây cuù phaùp A := X * (R + Q). ) Token 1 2 3 4 Baûng danh bieåu Trò töø vöïng Kieåu döõ lieäu id id id id A X R Q thöïc thöïc thöïc thöïc - Truyeàn thuoäc tính - Sinh ra bieán taïm khi thu giaûm 2. 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ù