Những giai đoạn nào được xử lý trong một chương trình dịch?
Trả lời:
Đáp án đúng: C
Chương trình dịch (compiler/interpreter) trải qua các giai đoạn chính để chuyển đổi mã nguồn (source code) thành mã đích (target code) mà máy tính có thể thực thi. Các giai đoạn này bao gồm:
1. **Phân tích từ vựng (Lexical Analysis):** Quá trình này chia mã nguồn thành các đơn vị nhỏ hơn gọi là token. Mỗi token đại diện cho một từ khóa, định danh, toán tử, hằng số, hoặc dấu phân cách.
2. **Phân tích cú pháp (Syntax Analysis):** Giai đoạn này kiểm tra xem chuỗi token có tuân theo ngữ pháp của ngôn ngữ lập trình hay không. Nó xây dựng một cây cú pháp (syntax tree) để biểu diễn cấu trúc của chương trình.
3. **Sinh mã (Code Generation):** Giai đoạn cuối cùng tạo ra mã đích từ cây cú pháp. Mã đích có thể là mã máy, mã assembly, hoặc mã trung gian (intermediate code) như bytecode.
Các phương án khác không mô tả đúng các giai đoạn trong quá trình dịch chương trình:
* **A. Phân tích thiết kế, lập trình, và kiểm thử:** Đây là các giai đoạn trong quy trình phát triển phần mềm, không phải là các giai đoạn bên trong một chương trình dịch.
* **B. Xây dựng chương trình và viết tài liệu:** Đây là các hoạt động liên quan đến phát triển phần mềm nói chung, chứ không phải các giai đoạn cụ thể của trình biên dịch.
* **D. Đào tạo và hướng dẫn sử dụng phần mềm:** Đây là các hoạt động hỗ trợ người dùng, không liên quan đến quá trình dịch chương trình.





