PTCP đảm nhiệm nhiệm vụ phức tạp nhất của trình dịch, đó là kiểm tra lỗi cú pháp của chuỗi vào (vốn có thể làm sai lệch hoàn toàn ý nghĩa của input). Các nhiệm vụ chính (nhất thiết[r]
(1)CHƯƠNG TRÌNH DỊCH
(2)Nội dung
1 Vai trị phân tích cú pháp (PTCP)
2 Nhiệm vụ PTCP
3 Các mục tiêu PTCP
4 Đầu vào đầu PTCP
5 Các bước xây dựng PTCP
(3)Vai trò phân tích cú
pháp (PTCP)
(4)Cấu trúc chương trình dịch
Phân tích từ vựng
Phân tích cú pháp
Phân tích ngữ nghĩa
Sinh mã trung gian Tối ưu mã trung gian
Sinh mã đích Mã nguồn
Mã đích Bộ quản lý
kí hiệu
Phân tích
(5)Vai trị phân tích cú pháp
Phân tích cú pháp pha thứ hai trình dịch
Bộ PTCP nhận liệu đầu vào dãy từ tố
(cùng với thông tin kèm theo), dựa theo luật văn phạm ngôn ngữ, xây dựng cú pháp
(syntax tree) chuỗi vào
PTCP làm việc chặt chẽ với PTTV thường bắt đầu thực công việc PTTV có kết ban đầu (khơng cần đợi PTTV kết thúc)
Đối với số ngôn ngữ đơn giản, thiết kế trình dịch
(6)Vai trị phân tích cú pháp
PTCP cung cấp liệu cho phân tích ngữ nghĩa
Làm việc độc lập với PTNN
Chỉ trả kết cho phân tích ngữ nghĩa sau hồn thành đầy đủ (hoặc tương đối đầy đủ) việc tạo cú pháp
(7)Vai trị phân tích cú pháp
Trái với PTTV, thường “đính kèm” nhiều nhiệm vụ khác, thiết kế PTCP thường nhắm tới nhiệm vụ dựng cú pháp
Lý việc xây PTCP hiệu phức tạp
Tuy PTCP trả kết cho PTNN, số thiết kế, PTCP định
nào thực phân tích ngữ nghĩa dựa điều kiện khởi động (trigger)
(8)Nhiệm vụ phân tích cú pháp
(9)Nhiệm vụ phân tích cú pháp
PTCP đảm nhiệm nhiệm vụ phức tạp trình dịch, kiểm tra lỗi cú pháp chuỗi vào (vốn làm sai lệch hồn toàn ý nghĩa input)
Các nhiệm vụ (nhất thiết phải có để đảm bảo hoạt động chương trình dịch):
Xây dựng cú pháp cho chuỗi vào
Thực số thao tác ngữ nghĩa phục vụ cho việc phân tích
Phát lỗi văn phạm lựa chọn phương pháp xử lý phù hợp
(10)Các mục tiêu phân tích cú pháp