Các giai đoạn của biên dịch gồm
A.
Phân tích từ vựng; Phân tích ngữ nghĩa; Sinh mã trung gian; Tối ưu mã; Sinh mã đích
B.
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ã; Sinh mã đích
C.
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ã;
D.
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
Trả lời:
Đáp án đúng: B
Giai đoạn biên dịch bao gồm:
- Phân tích từ vựng (Lexical Analysis): Chuyển đổi mã nguồn thành chuỗi các token.
- Phân tích cú pháp (Syntax Analysis): Xây dựng cây cú pháp từ các token, kiểm tra tính hợp lệ của cấu trúc chương trình.
- Phân tích ngữ nghĩa (Semantic Analysis): Kiểm tra tính đúng đắn về ngữ nghĩa của chương trình, ví dụ: kiểm tra kiểu dữ liệu, khai báo biến.
- Sinh mã trung gian (Intermediate Code Generation): Tạo ra biểu diễn trung gian của chương trình, thường là mã ba địa chỉ hoặc cây cú pháp trừu tượng.
- Tối ưu mã (Code Optimization): Cải thiện mã trung gian để tăng hiệu suất và giảm kích thước mã.
- Sinh mã đích (Code Generation): Chuyển đổi mã trung gian thành mã máy hoặc mã assembly cho một kiến trúc cụ thể.
Do đó, đáp án B là chính xác nhất.