JavaScript is required

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.

Câu hỏi liên quan