Phần 2 giáo trình gồm 4 chương còn lại với nội dung: Biên dịch dựa cú pháp, phân tích ngữ nghĩa, bảng kí hiệu, sinh mã trung gian, sinh mã. Môn học chương trình dịch là môn học của ngành khoa học máy tính. Trong suốt thập niên 50, trình biên dịch được xem là cực kỳ khó viết. Ngày nay, việc viết một chương trình dịch trở nên đơn giản hơn cùng với sự hỗ trợ của các công cụ khác, vì vậy giáo trình này phần nào gỡ bỏ những khó khăn cho bạn. | CHƯƠNG 5 BIÊN DỊCH DỰA CÚ PHÁP. 1. MỤC ĐÍCH, NHIỆM VỤ. - Các hành động dịch phụ thuộc rất nhiều vào cú pháp của chương trình nguồn cần trình dịch được điều khiển theo cấu trúc cú pháp của chương trình nguồn, cú pháp này được xác định thông qua bộ phân tích cú pháp. - Nhằm điều khiển các phần hoạt động theo cú pháp, cách thường dùng là gia cố các luật sản xuất ( mà ta biết cụ thể những luật nào và thứ tự thực hiện ra sao thông qua cây phân tích) bằng cách thêm các thuộc tính cho văn phạm đấy, và các qui tắc sinh thuộc tính gắn với từng luật cú pháp. Các qui tắc đó, ta gọi là qui tắc ngữ nghĩa (semantic rules). - thực hiện các qui tắc ngữ nghĩa đó sẽ cho thông tin về ngữ nghĩa, dùng để kiểm tra kiểu, lưu thông tin vào bảng ký hiệu và sinh mã trung gian. - Có hai tiếp cận để liên kết (đặc tả) các qui tắc ngữ nghĩa vào các luật cú pháp (sản xuất) là cú pháp điều khiển (syntax-directed definition) và lược đồ dịch (translation scheme). - Các luật ngữ nghĩa còn có các hành động phụ (ngoài việc sinh thuộc tính cho các ký hiệu văn phạm trong sản xuất) như in ra một giá trị hoặc cập nhật một biến toàn cục. Các kiến thức trong phần này không nằm trong khối chức năng riêng rẽ nào của chương trình dịch mà được dùng làm cơ sở cho toàn bộ các khối nằm sau khối phân tích cú pháp. Một xâu vào → Cây phân tích → Đồ thị phụ thuộc → thứ tựđánh giá cho các luật ngữ nghĩa. 2. ĐỊNH NGHĨA CÚ PHÁP ĐIỀU KHIỂN. Cú pháp điều khiển (syntax-directed definition) là một dạng tổng quát hoá của văn phạm phi ngữ cảnh, trong đó mỗi ký hiệu văn phạm có một tập thuộc tính đi kèm, được chia thành 2 tập con là thuộc tính tổng hợp (synthesized attribute) và thuộc tính kế thừa (inherited attribute) của ký hiệu văn phạm đó. Một cây phân tích cú pháp có trình bày các giá trị của các thuộc tính tại mỗi nút được gọi là cây phân tích cú pháp có chú giải (hay gọi là cây phân tích đánh dấu) (annotated parse tree). . Cú pháp điều khiển. . Dạng của định nghĩa cú pháp điều khiển. Trong mỗi cú pháp