Thoreau BASIC 3.2: Khi BASIC cổ điển được trang bị JIT x64, đa luồng và khởi động trực tiếp trên UEFI

Công nghệ03 tháng 10, 2026·6 phút đọc

Thoreau BASIC 3.2 là trình thông dịch BASIC mã nguồn mở cho x64, lấy cảm hứng từ GW-BASIC nhưng bổ sung JIT gốc, đa luồng PARFOR, số phức và siêu phức, đồ họa 24-bit cùng khả năng chạy trực tiếp trên UEFI mà không cần hệ điều hành. Dự án đặt câu hỏi thú vị: BASIC sẽ trông ra sao nếu nó chưa từng bị lỗi thời?

Nếu bạn từng gõ những dòng lệnh BASIC trên chiếc máy tính 8-bit ngày xưa, có lẽ bạn sẽ thấy vừa hoài niệm vừa tò mò trước một dự án mang tên Thoreau BASIC. Đây là trình thông dịch BASIC miễn phí cho nền tảng x64, lấy cảm hứng từ GW-BASIC, nhưng được trang bị những công nghệ mà thế hệ lập trình viên năm 1983 không thể mơ tới.

Điều đáng chú ý nhất: cùng một chương trình BASIC có thể chạy như một ứng dụng Windows bình thường, hoặc khởi động trực tiếp trên firmware UEFI mà không cần hệ điều hành nào cả.

Từ một trò đùa đến cỗ máy phức tạp

Tác giả kể rằng Thoreau BASIC khởi đầu như một trò đùa. Ông muốn có một trình BASIC cho phép gõ những dòng lệnh "vô lý" kiểu như khai báo một mảng khổng lồ rồi... để nó chạy thật. Nhưng rồi ông cứ thêm dần, thêm mãi, và kết quả là phiên bản 3.2 đã trở nên tham vọng hơn nhiều so với ý tưởng ban đầu.

Bề ngoài, ngôn ngữ này vẫn giữ nguyên diện mạo của Microsoft BASIC thời xưa: số dòng, GOTO, GOSUB, PRINT, PSET, LINE, CIRCLE, DRAW. Nhưng bên dưới lớp vỏ "ngây thơ" đó là cả một bộ máy đồ sộ.

Những tính năng đáng chú ý của phiên bản 3.2

  • Biên dịch JIT gốc cho x64, tự động chuyển sang chế độ thông dịch khi cần
  • PARFOR cho các vòng lặp số đa luồng
  • Tăng tốc SSE2 / AVX2 khi phần cứng hỗ trợ
  • Địa chỉ hóa 64-bit và mảng có kích thước cực lớn
  • Hỗ trợ gốc số phức, quaternion và các số siêu phức khác
  • Đồ họa 24-bit với độ phân giải tùy ý
  • Sprite, thao tác bitmap, tô đa giác và nhập liệu bằng chuột
  • Mạng TCP/IP trên cả Windows lẫn UEFI
  • Trình gỡ lỗi, profiler, tracing và công cụ phân tích chương trình tích hợp
  • CREATEEXE biến chương trình BASIC thành file thực thi Windows độc lập
  • CREATEEFI biến cùng chương trình đó thành ứng dụng UEFI khởi động trực tiếp

Hệ thống âm thanh cũng phình to không kém: Thoreau BASIC xử lý tới 32 kênh nhạc cụ, 64 kênh hiệu ứng âm thanh và 256 giọng, với điều khiển pan và độ sáng theo thời gian thực. Các lệnh NOTE và SOUNDKEY giờ đây hoạt động như những nguyên thủy tổng hợp âm thanh có thể chơi được, chứ không chỉ là tiếng bíp kiểu BASIC cũ.

BASIC chạy không cần hệ điều hành

Bản dựng UEFI khởi động trực tiếp trên máy x64, sử dụng đồ họa GOP, nhập liệu từ bàn phím HID thô hoặc firmware, hỗ trợ chuột với các phương án dự phòng, mạng qua giao thức firmware hoặc ngăn xếp SNP riêng của Thoreau, âm thanh HDA/Azalia PCM khi có sẵn — và dùng chung trình thông dịch/JIT cùng bộ wavetable GM với bản Windows.

Một ràng buộc thiết kế quan trọng xuyên suốt dự án là Windows và UEFI phải thực thi cùng một ngôn ngữ BASIC. Một chương trình không nên đột nhiên biến thành loài khác chỉ vì bên dưới nó không có hệ điều hành.

Hiệu năng đủ nhanh để không còn là "trình diễn"

Tác giả dành nhiều thời gian tối ưu để chính các chương trình BASIC chạy đủ nhanh, không còn cảm giác như đang xem minh họa về một trình thông dịch. Ví dụ, bản demo Mandelbrot hiện nay là một trình khám phá fractal tương tác thời gian thực: di chuột để dịch chuyển, nhấp trái để phóng to, nhấp phải để thu nhỏ, trong khi chương trình BASIC liên tục vẽ lại và hiển thị tốc độ khung hình.

Ngoài ra còn có các demo 3D, demo thủ tục (procedural), chương trình sprite, ví dụ mạng, fractal siêu phức và cả game.

"Tôi hoàn toàn ý thức được sự vô lý khi kết hợp GOTO 100 với AVX2, đa luồng, TCP/IP và số học quaternion. Điều đó ngày càng chính là mục đích."

Điểm mới về tiện ích trong phiên bản 3.2

Bên cạnh những tính năng hào nhoáng, bản 3.2 còn mở rộng những phần kém "hấp dẫn" nhưng cực kỳ hữu dụng:

  • GETFILES và SELECTBOX giúp duyệt và chọn file tốt hơn, với bộ chọn điều khiển bằng bàn phím và chuột, hỗ trợ nhiều cột và khung vẽ hộp
  • Tên file giữ nguyên chữ hoa chữ thường, đường dẫn đầy đủ dài tới 4.095 byte
  • STATEWRITE và STATELOAD lưu checkpoint các biến đã chọn vào hai thế hệ luân phiên có kiểm tra checksum
  • FLUSH, FILECOMMIT, FILECOPY hỗ trợ lưu theo giai đoạn và sao lưu có xác minh
  • CRC32 kiểm tra chuỗi byte, TEXTSTATS đếm từ và ký tự
  • SYSTEMINFO$ báo cáo chi tiết CPU, firmware, khả năng AVX2/SSE2, sức chứa PARFOR, tốc độ bộ đếm TSC đã hiệu chuẩn, backend hiển thị và thông tin bản dựng

Vẫn là BASIC, theo đúng nghĩa đen

Chương trình kinh điển vẫn chạy y nguyên:

10 CLS
20 PRINT "HELLO FROM THOREAU BASIC"
30 FOR I=1 TO 5
40 PRINT I
50 NEXT I
60 END
RUN

Và giờ đây cả dàn nhạc cũng là BASIC:

SOUND PRELOAD
LOADMID 0,"BALLADE.MID"
PLAYMID 0

Đồ họa, mạng và âm thanh vẫn là những lệnh BASIC thông thường, chứ không phải các framework tách biệt.

Góc nhìn cho người dùng Việt Nam

Với cộng đồng lập trình viên Việt Nam, Thoreau BASIC có thể là một dự án thú vị ở nhiều góc độ. Những ai từng học lập trình qua Pascal, QBasic hay GW-BASIC trong các trường phổ thông và đại học thập niên 1990–2000 sẽ thấy đây là cầu nối thú vị giữa ký ức và kỹ thuật hiện đại.

Về mặt kỹ thuật, dự án này là một ví dụ đáng học hỏi về biên dịch JIT trên x64, lập trình bare-metal trên UEFI, và cách thiết kế một ngôn ngữ có thể chạy trên nhiều nền tảng với cùng một ngữ nghĩa. Sinh viên ngành hệ thống nhúng hoặc khoa học máy tính có thể dùng nó như một tài liệu tham khảo mã nguồn mở.

Dự án được phát hành miễn phí trên itch.io, kèm tài liệu dạng văn bản thuần và ghi chú phát hành. Tác giả cũng cho biết hoan nghênh các báo cáo lỗi, ghi chú tương thích và những "trường hợp biên kỳ quặc" của BASIC. Không có màn hình quảng cáo, không có tính năng bị khóa — đúng tinh thần của một dự án đam mê thuần túy.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗