Compilers

Trình biên dịch — 3 tier × 15 bài: hiểu trọn "ngôn ngữ chạy thế nào", từ mã nguồn tới máy thực thi, qua một ngôn ngữ đồ chơi tự xây.

Lĩnh vực này dạy gì?

Câu hỏi xuyên suốt: bạn gõ x = (2+3)*4 — máy chỉ hiểu 0/1; compiler là cây cầu. Mỗi bài là một trạm biến đổi nhìn thấy được: tokens → AST → IR → bytecode → chạy.

Tiền đề: DataStructures (tree, stack, hash, graph), DataFoundations (đệ quy/proof, encoding), Algorithms (automata, chia để trị), OperatingSystems (stack frame, bộ nhớ). Bổ trợ Programming.

3 tier 15 bài

Tier 1
Tổng quan & pipeline, lexer, grammar/CFG, recursive-descent parser, Pratt parsing — mã nguồn → AST (5 bài).
Tier 2
AST/visitor, symbol table & scope, type checking, tree-walking interpreter, hàm & closure (5 bài).
Tier 3
IR (three-address), optimization, bytecode & stack VM, control flow codegen, register allocation & targets (5 bài).