Lesson 01 — Tổng quan & Pipeline trình biên dịch
Ba bộ công cụ tương tác: đẩy một biểu thức qua từng trạm của pipeline, so sánh compiler vs interpreter bằng số bước, và phân loại lỗi theo giai đoạn.
1. Pipeline Explorer — đẩy biểu thức qua từng trạm
Gõ một biểu thức (toán tử + - * /, ngoặc (), biến a..z, dạng x = ... hoặc chỉ biểu thức).
Bấm "Chạy pipeline" để xem nó biến đổi: tokens → AST → IR → IR tối ưu → bytecode.
2. Compiler vs Interpreter — đếm "bước"
Cùng một dòng code chạy N lần. Compiler dịch một lần rồi chạy mã máy N lần (compile-once-run-many). Interpreter phân tích lại mỗi lần (interpret-mỗi-lần). Kéo thanh để thấy ai thắng khi N lớn dần.
Mô hình (đơn vị "bước"): compile = 50 bước (1 lần) + chạy native 1 bước/lần · interpret = 8 bước/lần (phân tích lại + làm).
3. Phân loại lỗi — lỗi thuộc giai đoạn nào?
Nhập một snippet (có thể sai). Bộ phân loại chỉ ra lỗi rơi vào giai đoạn nào: Lexical (ký tự lạ) · Syntax (sai cú pháp) · Semantic (biến chưa khai báo) · Runtime (chia 0...).