Một dự án mới đưa BASIC quay lại sân khấu công cụ biên dịch hiện đại

Một nhà phát triển phần mềm nguồn mở đã tạo ra basic09c, một trình biên dịch độc lập dành cho BASIC09 nhưng tận dụng LLVM như một thư viện phía dưới. LLVM là hạ tầng biên dịch hiện đại rất nổi tiếng, thường được dùng để xây dựng trình biên dịch cho nhiều ngôn ngữ khác nhau nhờ khả năng tối ưu mã và sinh mã máy cho nhiều kiến trúc phần cứng. Điểm đáng chú ý là cả LLVM lẫn GCC – bộ công cụ biên dịch mã nguồn mở phổ biến nhất – vốn không hỗ trợ trực tiếp ngôn ngữ BASIC theo cách mặc định. Từ một đề xuất RFC, tức tài liệu thảo luận kỹ thuật để xin ý kiến cộng đồng, dự án giờ đã trở thành một trình biên dịch hoạt động độc lập có tên basic09c.

Không phải BASIC kiểu cũ, mà là BASIC09 của Microware OS-9

Điều khiến dự án này nổi bật là nó không nhắm đến một biến thể BASIC đơn giản của máy tính gia đình thập niên 1980, mà là BASIC09 – ngôn ngữ từng gắn với hệ điều hành OS-9 của Microware. OS-9 là một hệ điều hành đa nhiệm, đa người dùng, mang phong cách Unix-like, nghĩa là có triết lý và cấu trúc tương tự Unix nhưng không phải Unix chính thức. Ngày nay, OS-9 vẫn tồn tại dưới dạng RTOS, viết tắt của Real-Time Operating System, tức hệ điều hành thời gian thực chuyên dùng trong các môi trường cần phản hồi đúng thời hạn như thiết bị nhúng hay công nghiệp.

BASIC09 từng hiện đại hơn nhiều người tưởng

Khác với hình ảnh quen thuộc về BASIC gắn với số dòng và các lệnh nhảy đơn giản, BASIC09 là một biến thể có cấu trúc rõ ràng. Nó hỗ trợ thủ tục có tên, biến cục bộ, các khối điều khiển như IF…THEN…ELSE và cả kiểu dữ liệu do người dùng định nghĩa. Nói cách khác, đây là một bước tiến lớn so với BASIC đời đầu, vốn thường bị xem là ngôn ngữ dành cho người mới học. Việc không cần đánh số dòng cũng cho thấy BASIC09 tiến gần hơn tới phong cách lập trình hiện đại, dễ bảo trì và dễ mở rộng hơn.

Từ diễn đàn LLVM đến trình biên dịch thực thụ

Dự án bắt đầu từ một chủ đề trên diễn đàn Discourse của cộng đồng LLVM với tiêu đề đề xuất bổ sung frontend BASIC09. Frontend trong kiến trúc trình biên dịch là thành phần đọc mã nguồn của một ngôn ngữ cụ thể, phân tích cú pháp và chuyển nó sang dạng trung gian để các phần còn lại của hệ thống xử lý. Thay vì chờ LLVM tích hợp trực tiếp, tác giả đã phát triển basic09c như một công cụ độc lập nhưng vẫn tận dụng toàn bộ sức mạnh của LLVM ở phía sau. Cách làm này cho phép ngôn ngữ cũ được hưởng lợi từ công nghệ tối ưu hóa hiện đại mà không cần xây lại toàn bộ chuỗi công cụ từ đầu.

Một lát cắt thú vị của lịch sử máy tính

OS-9 của Microware từng gây nhầm lẫn lớn vào năm 1999 khi Apple phát hành Mac OS 9. Nhiều người dùng khi đó đã lẫn lộn giữa Mac OS 9 và OS-9, dù hệ điều hành của Microware đã xuất hiện trước đó khoảng hai thập kỷ. Sự nhầm lẫn này thậm chí từng dẫn tới tranh chấp thương hiệu. Về mặt lịch sử, OS-9 cũng có vị trí riêng trong giới máy tính cá nhân cổ điển: nó từng chạy trên Dragon 32 tại Anh và cả Tandy Color Computer ở Mỹ, hai dòng máy dùng bộ xử lý Motorola 6809. Đây là CPU 8-bit được nhiều người đam mê retro đánh giá cao nhờ thiết kế mạnh mẽ so với thời đại của nó.

Người đứng sau dự án không xa lạ với cộng đồng retro

Tác giả của dự án, Boisy Pitre, không phải cái tên mới trong giới công nghệ cổ điển và phần mềm nguồn mở. Ông từng làm việc tại Microware ở giai đoạn đầu sự nghiệp, vì vậy việc quay lại với BASIC09 mang màu sắc vừa kỹ thuật vừa cá nhân. Trước đây, ông cũng từng gây chú ý với Liber809, một dự án retrocomputing rất táo bạo. Retrocomputing là lĩnh vực phục dựng, bảo tồn hoặc mở rộng các hệ thống máy tính cũ. Với Liber809, ông gần như thực hiện một cuộc “ghép não” cho máy Atari 8-bit bằng cách thay nền tảng xử lý sang 6809 để chạy NitrOS-9, một bản phân phối do cộng đồng duy trì của Microware OS dành cho 6809.

Tín hiệu cho thấy BASIC vẫn chưa biến mất

Sự xuất hiện của basic09c cũng củng cố một thực tế mà nhiều người trong giới phát triển đã nhận ra: BASIC chưa hề chết. Dù không còn là ngôn ngữ chủ đạo trong phát triển phần mềm hiện đại, BASIC và các hậu duệ của nó vẫn tiếp tục sống trong cộng đồng nguồn mở, giáo dục, bảo tồn di sản số và cả các dự án công cụ biên dịch mới. Trong bối cảnh GCC gần đây cũng đón thêm ALGOL-68 – một ngôn ngữ lập trình cổ điển khác – việc LLVM nay có thêm một dự án xoay quanh BASIC09 cho thấy làn sóng hồi sinh công nghệ cũ đang ngày càng gắn chặt với hạ tầng phần mềm hiện đại.

Danh mục máy quét mã vạch

Máy quét mã vạch - Quét mã Qr - Quét mã vạch sản phẩm.

DÒNG MÁY CÓ DÂY

máy quét mã vạch không dây

DÒNG MÁY KHÔNG DÂY

DÒNG MÁY KIỂM KHO PDA

DÒNG MÁY FITMOUNT