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.

Mẫu:

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.

1000

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).

🛠 Compiler (compile-once-run-many)
Dịch 1 lần (cố định) + N × chạy native
Tổng: bước
🔁 Interpreter (interpret-mỗi-lần)
Không dịch trước + N × (phân tích lại + làm)
Tổng: bước

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...).

Mẫu: