Máy thực thi lệnh thế nào
Dựng mô hình 'máy chạy từng dòng và giữ trạng thái' — thứ mọi module sau dựa lên. Chương trình là một dãy lệnh máy làm đúng từng chữ; biến là ô nhớ có tên và dấu bằng là phép gán chứ không phải phép so sánh; ô nhớ còn có kiểu, nên cộng chuỗi với số thì nổ; rồi bảng trace để tự chạy chương trình bằng tay và biết sau mỗi dòng biến bằng mấy. Không cài đặt gì, không chạy code. Quy ước xuyên khoá: mỗi mini challenge mở đầu bằng một câu bình thường-hoá việc làm sai — framing chống bỏ cuộc phải rải đều, không dồn vào M4.
Nội dung
Danh sách bài học
- 01~8 phút
Tổng quan module — máy thực thi lệnh thế nào
Module dựng thứ mọi module sau dựa lên: mô hình một cỗ máy chạy từng dòng và giữ trạng thái. Không cài đặt gì, không chạy code.
- 02~9 phút
Chương trình là một dãy lệnh — máy làm đúng từng chữ
Máy không đoán ý bạn. Nó đọc từng dòng theo thứ tự và làm đúng chữ bạn viết, kể cả khi chữ đó rõ ràng không phải điều bạn muốn.
- 03~13 phút
Biến, phép gán, và kiểu — dấu bằng không phải 'bằng nhau'
x = x + 1 vô lý trong toán nhưng hợp lệ ở đây: dấu bằng không so sánh mà chép giá trị vào một ô nhớ có tên, sau khi vế phải đã tính xong.
- 04~9 phút
Chuỗi và số — vì sao cộng hai kiểu lại nổ
Ô nhớ không chỉ giữ một giá trị, nó còn giữ một kiểu. Cộng chuỗi với số là chỗ người mới vấp sớm hơn ta tưởng — và là traceback đầu tiên bạn đọc trong khoá này.
- 05~14 phút
Bảng trace — chạy chương trình bằng tay
Công cụ xương sống của khoá: cái bảng để bạn đóng vai cỗ máy, đi từng dòng và ghi lại mọi biến. Trace được thì viết được, không thì đoán mò.
- 06~10 phút
Mini challenge — hoán đổi hai biến
Ba dòng gán, hai biến, một câu hỏi: chạy xong thì mỗi biến bằng mấy? Phép thử thật cho mô hình ô nhớ bạn vừa dựng ở hai bài trước.
- 07~8 phút
Tổng kết module — bạn đã có cỗ máy trong đầu
Nhìn lại bốn thứ vừa dựng: máy làm đúng từng chữ, biến là ô nhớ có tên, ô nhớ có kiểu, và bảng trace để tự chạy chương trình. Tự chấm trước khi đi tiếp.