(Tải về) Quyển sách trình biên dịch UNI
Khi viết một chương trình bằng một ngôn ngữ lập trình nào đó, ngoài việc quan tâm đến cấu trúc của chương trình (cú pháp – văn phạm), ta còn phải chú ý đến ý nghĩa của chương trình. Như vậy, khi thiết kế một trình biên dịch, ta không những chú ý đến văn phạm mà còn chú ý đến cả ngữ nghĩa.
Chương 5 trình bày các cách biểu diễn ngữ nghĩa của một chương trình. Mỗi ký hiệu văn phạm kết hợp với một tập các thuộc tính– các thông tin. Mỗi luật sinh kết hợp với một tập các luật ngữ nghĩa – các quy tắc xác định trị của các thuộc tính. Việc đánh giá các luật ngữ nghĩa được sử dụng để thực hiện một công việc nào đó như tạo ra mã trung gian, lưu thông tin vào bảng ký hiệu, xuất các thông báo lỗi, v.v.
Ta sẽ thấy rõ việc đánh giá này ở các chương sau: 6, 8, 9. Hai cách để kết hợp các luật sinh với các luật ngữ nghĩa được trình bày trong chương là: Định nghĩa trực tiếp cú pháp và Lược đồ dịch. Ở mức quan niệm, bằng cách sử dụng định nghĩa trực tiếp cú pháp hoặc lược đồ dịch, ta phân tích dòng thẻ từ, xây dựng cây phân tích cú pháp và duyệt cây khi cần để đánh giá các luật ngữ nghĩa tại các nút của cây.