Danh mục

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    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 13,000 VND Tải xuống file đầy đủ (19 trang) 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

Tài liệu được xem nhiều: