Trong một trình biên dịch thì giai đoạn “Sinh mã đích” là giai đoạn
Đáp án đúng: A
Câu hỏi liên quan
Phương án A mô tả chính xác nhiệm vụ của giai đoạn phân tích ngữ nghĩa. Các phương án khác không liên quan trực tiếp đến giai đoạn này:
- Phương án B: Phân tích cú pháp là một giai đoạn trước đó, thực hiện việc xây dựng cây cú pháp từ mã nguồn.
- Phương án C: Nhóm các từ tố và từ vựng là công việc của giai đoạn phân tích từ vựng (Lexical Analysis).
- Phương án D: Sinh mã giả (Intermediate Code Generation) là một giai đoạn sau phân tích ngữ nghĩa.
* 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.
Để giải quyết bài toán này, ta cần hiểu rằng thứ tự duyệt các từ tố phụ thuộc vào cách xây dựng cây phân tích cú pháp và thứ tự duyệt cây (ví dụ: duyệt tiền tố, trung tố, hậu tố).
Trong trường hợp này, ta có thể giả định một cách duyệt cây thông thường (ví dụ, duyệt trung tố - in-order traversal) tương ứng với thứ tự xuất hiện các từ tố trong câu lệnh gốc. Khi đó, các bước phân tích như sau:
1. `position` (id)
2. `:=` (toán tử gán)
3. `initial` (id)
4. `+` (toán tử cộng)
5. `rate` (id)
6. `*` (toán tử nhân)
7. `60` (number)
Dựa trên phân tích này, đáp án B là đáp án chính xác nhất.
Các đáp án khác không tuân theo thứ tự xuất hiện logic của các từ tố trong câu lệnh và cách cây phân tích cú pháp thường được duyệt. Ví dụ, đáp án A đảo lộn thứ tự, đáp án C đặt `:=` lên đầu, và đáp án D cũng không tuân theo thứ tự đúng.
Trong cây phân tích cú pháp, nếu một ký hiệu chưa kết thúc (non-terminal) A có luật sinh A → XYZ, điều này có nghĩa là ký hiệu A có thể được thay thế bằng chuỗi XYZ. Do đó, trong cây phân tích cú pháp, một nút có nhãn A có thể có ba nút con, theo đúng thứ tự từ trái sang phải, có nhãn X, Y và Z. Các lựa chọn khác không tuân theo đúng thứ tự hoặc số lượng ký hiệu con như luật sinh đã chỉ ra.
Duyệt cây theo chiều sâu (Depth-First Traversal) bắt đầu từ nút gốc, sau đó thăm các nút con theo thứ tự từ trái sang phải (hoặc từ phải sang trái, tùy theo yêu cầu bài toán). Đối với mỗi nút con, ta lại tiếp tục duyệt theo chiều sâu tương tự. Khi duyệt xong một nhánh, ta quay lại nút cha và tiếp tục duyệt các nhánh còn lại.
Do đó, đáp án A là chính xác: Bắt đầu từ nút gốc, thăm lần lượt (đệ qui) các con của mỗi nút theo thứ tự từ trái sang phải.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.