Một trình biên dịch mới cho ngôn ngữ lập trình B đã xuất hiện từ cộng đồng phát triển, nhưng điều thu hút sự chú ý không chỉ là việc hồi sinh ngôn ngữ lịch sử này - mà là cách tiếp cận bất thường để xây dựng nó. Dự án sử dụng Crust, một phương ngữ được đơn giản hóa có chủ ý của Rust loại bỏ nhiều tính năng an toàn hiện đại của ngôn ngữ để ưu tiên trải nghiệm lập trình giống C hơn.
![]() |
---|
Chữ cái "B" đại diện cho ngôn ngữ lập trình được thảo luận trong bài viết, tượng trưng cho sự hồi sinh và tầm quan trọng của nó trong lịch sử máy tính |
Thí nghiệm Crust gây tranh cãi
Khía cạnh hấp dẫn nhất của dự án này là việc sử dụng Crust, tuân theo một bộ quy tắc phi truyền thống đi ngược lại các thực hành lập trình Rust điển hình. Mọi hàm đều được đánh dấu là unsafe, tham chiếu được tránh hoàn toàn để ưu tiên con trỏ thô, và thư viện chuẩn bị cấm sử dụng. Quá trình build bỏ qua hoàn toàn Cargo, thay vào đó sử dụng trực tiếp rustc.
Cách tiếp cận này đã chia rẽ cộng đồng lập trình. Một số lập trình viên đặt câu hỏi tại sao ai đó lại cố ý loại bỏ các đảm bảo an toàn của Rust khi các ngôn ngữ như Zig đã cung cấp một giải pháp thay thế an toàn hơn cho lập trình kiểu C. Những người khác coi đây là một thí nghiệm thú vị trong lập trình giải trí, tập trung vào sự đơn giản hơn là phức tạp.
Crust: Một phương ngữ của Rust loại bỏ các tính năng an toàn như borrow checker và việc sử dụng thư viện chuẩn
Quy tắc ngôn ngữ Crust:
- Mọi hàm đều là unsafe
- Không có references, chỉ có pointers
- Không có cargo, build trực tiếp với rustc
- Không có std, nhưng libc được phép sử dụng
- Chỉ sử dụng Edition 2021
- Tất cả struct và enum của người dùng [derive(Clone, Copy)]
- Mọi thứ đều là pub theo mặc định
Nhiều triển khai ngôn ngữ B xuất hiện
Cuộc thảo luận đã tiết lộ rằng một số lập trình viên đã làm việc độc lập trên các trình biên dịch ngôn ngữ B. Các thành viên cộng đồng đã chia sẻ liên kết đến các triển khai của riêng họ, cho thấy sự quan tâm ngày càng tăng trong việc hồi sinh tiền thân của ngôn ngữ lập trình C này. Xu hướng này phản ánh sự mê hoặc rộng lớn hơn với lịch sử máy tính và mong muốn hiểu cách các ngôn ngữ lập trình sơ khai hoạt động.
Điều làm cho triển khai cụ thể này nổi bật là hỗ trợ cho nhiều nền tảng đích, bao gồm máy ảo Uxn bất thường - một nền tảng máy tính tối giản đã thu hút một lượng người theo dõi cuồng nhiệt trong số các lập trình viên quan tâm đến môi trường máy tính hạn chế.
Các phụ thuộc của dự án:
- Rust - ngôn ngữ triển khai trình biên dịch
- fasm ( Flat Assembler ) - backend trình biên dịch
- Các mục tiêu được hỗ trợ bao gồm fasm-x86_64-linux và máy ảo Uxn
Triết lý lập trình giải trí
Dự án thể hiện một triết lý ưu tiên học tập và thử nghiệm hơn là sẵn sàng cho sản xuất. Trình biên dịch đi kèm với một framework kiểm thử toàn diện có tên btest tạo ra các báo cáo ma trận trên các nền tảng khác nhau, cho phép các lập trình viên thấy ngôn ngữ hoạt động như thế nào trong các môi trường khác nhau.
Bài học chính của Tsoding là các hệ thống có thể đơn giản như thế nào và nhu cầu về các hệ thống build phức tạp là ngớ ngẩn.
Cách tiếp cận này gây tiếng vang với các lập trình viên cảm thấy choáng ngợp bởi các toolchain phát triển hiện đại và khao khát những thời đại đơn giản hơn khi xây dựng phần mềm không đòi hỏi phải thành thạo các hệ thống quản lý phụ thuộc phức tạp.
Trình biên dịch ngôn ngữ lập trình B vừa là một thành tựu kỹ thuật vừa là một tuyên bố về triết lý phát triển. Mặc dù có thể chưa sẵn sàng cho việc sử dụng sản xuất, nó chứng minh cách các ngôn ngữ lập trình lịch sử có thể được hồi sinh bằng các công cụ hiện đại, ngay cả khi những công cụ đó được cố ý hạn chế để cảm thấy giống tổ tiên của chúng hơn.
Tham khảo: B Programming Language