Các giai đoạn của một trình biên dịch (chương trình dịch) có thể được nhóm thành các nhóm nào?
Trả lời:
Đáp án đúng: A
Trình biên dịch thường được chia thành các giai đoạn, trong đó có thể nhóm thành các nhóm chính sau:
* **Kỳ đầu (Front end):** Giai đoạn này xử lý mã nguồn, bao gồm các công đoạn như phân tích từ vựng, phân tích cú pháp, phân tích ngữ nghĩa và tạo ra biểu diễn trung gian (intermediate representation - IR).
* **Kỳ giữa (Middle end/Optimizer):** Giai đoạn này tối ưu hóa biểu diễn trung gian để cải thiện hiệu suất của mã đích. Các kỹ thuật tối ưu hóa có thể bao gồm loại bỏ mã chết, lan truyền hằng số, tối ưu hóa vòng lặp, v.v.
* **Kỳ sau (Back end):** Giai đoạn này tạo ra mã đích từ biểu diễn trung gian đã được tối ưu hóa. Giai đoạn này bao gồm chọn lệnh, cấp phát thanh ghi và phát sinh mã máy hoặc mã assembly.
Vì vậy, đáp án chính xác nhất là: Kỳ đầu, kỳ giữa, kỳ sau.