Việc ra mắt một triển khai Forth chỉ có 328 byte cho bộ xử lý 6502 đã làm dấy lên các cuộc thảo luận trong cộng đồng điện toán cổ điển, làm nổi bật cả sức hấp dẫn lâu dài của các ngôn ngữ lập trình tối giản và sự liên quan tiếp tục của phần cứng có tuổi đời hàng thập kỷ.
Sức hấp dẫn của Forth và các triển khai tối giản
Triển khai milliForth cho bộ xử lý 6502 thể hiện một thành tựu kỹ thuật ấn tượng với chỉ 328 byte, được coi là ngôn ngữ lập trình thực tế nhỏ nhất từ trước đến nay. Trong khi bài viết gốc mô tả chi tiết các khía cạnh kỹ thuật của việc triển khai Forth trên kiến trúc của 6502, cuộc thảo luận của cộng đồng tiết lộ một câu chuyện sâu sắc hơn về lý do tại sao các nhà phát triển tiếp tục tạo ra những triển khai như vậy.
Tôi luôn có cảm giác rằng mọi người dành nhiều thời gian hơn để viết các trình thông dịch Forth, thay vì viết các chương trình Forth để giải quyết các vấn đề thực tế.
Nhận xét này đã gây tiếng vang với nhiều người trong cộng đồng, với một số nhà phát triển thừa nhận họ thích quá trình tạo ra các trình thông dịch Forth như một bài tập trí tuệ. Thiết kế độc đáo của ngôn ngữ này làm cho nó đặc biệt phù hợp cho sở thích đệ quy này—Forth rất xuất sắc để viết các trình thông dịch Forth.
Các ngách thực tế của Forth trong điện toán hiện đại
Mặc dù có vẻ như chỉ là một điều thú vị đối với người có sở thích, Forth tiếp tục phục vụ các mục đích thực tế trong các lĩnh vực cụ thể. Các thành viên cộng đồng đã nhấn mạnh một số lĩnh vực mà Forth vượt trội:
Khởi động phần cứng và lập trình bare-metal vẫn là trường hợp sử dụng mạnh nhất của Forth. Ngôn ngữ này cung cấp một môi trường tương tác mạnh mẽ để kiểm tra và gỡ lỗi phần cứng mới mà không cần các chuỗi công cụ phức tạp hoặc hệ điều hành. Như một người bình luận đã lưu ý, Forth phơi bày cả vấn đề và giải pháp không liên quan đến phần lớn các hệ thống điện toán hàng ngày, đặc biệt khi các nhà phát triển muốn một cách tiếp cận tối giản với kiểm soát chính xác đối với phần cứng.
Một số nhà phát triển đã báo cáo việc sử dụng các hệ thống dựa trên Forth đã chạy liên tục trong nhiều năm, đặc biệt là để kiểm tra, tạo nguyên mẫu và tạo tập lệnh. Những người khác đề cập đến các ứng dụng lịch sử, bao gồm các triển khai BIOS dựa trên Forth từ những năm 1980 và các giải pháp kỹ thuật trên máy tính như HP-48.
Sức hấp dẫn bền bỉ của 6502
Cuộc thảo luận xung quanh triển khai Forth này cũng tiết lộ tuổi thọ đáng ngạc nhiên của chính bộ xử lý 6502. Ban đầu được phát hành vào năm 1975, 6502 đã cung cấp năng lượng cho các máy tính biểu tượng như Apple II, Commodore 64 và các hệ thống Atari.
Các thành viên cộng đồng chia sẻ rằng 6502 vẫn đang được sản xuất ngày nay, với Western Design Center vẫn đang sản xuất các chip này và cung cấp các bảng phát triển. Các công ty như Olimex bán các bảng mạch hiện đại dựa trên 6502, và những người đam mê có thể mua bộ dụng cụ để xây dựng hệ thống của riêng họ.
Khi được hỏi tại sao ai đó lại chọn 6502 thay vì các vi điều khiển hiện đại như ESP32, các thành viên cộng đồng nhấn mạnh giá trị giáo dục và khả năng tiếp cận của kiến trúc cũ hơn. Tính đơn giản của 6502 cho phép những người có sở thích hiểu mọi khía cạnh của hệ thống, từ phần cứng đến phần mềm. Như một người bình luận đã giải thích, bạn có thể đặt một 6502 trên bảng mạch, tạo bus riêng của bạn bằng dây, và hiểu từng khía cạnh của nó.
Thông số kỹ thuật milliForth 6502
- Kích thước triển khai: 328 byte
- Mô hình luồng: Direct Thread Code (DTC) và Minimal Thread Code (MTC)
- Bố trí bộ nhớ:
- $000: Trang không (dành riêng cho CPU)
- $100: Stack phần cứng (dành riêng cho CPU)
- $200: TIB (bộ đệm đầu vào thiết bị đầu cuối, 80 byte)
- $220: Stack dữ liệu (36 ô nhớ, ngược)
- $260: Stack trả về (36 ô nhớ, ngược)
- $2E0: PIC (dành riêng cho bộ nhớ tạm, 16 ô nhớ)
- $300: main (điểm bắt đầu của Forth)
- $777: ends (kết thúc của mã và các thành phần nguyên thủy)
- $7E0: init (điểm bắt đầu của từ điển hợp thành)
Các nền tảng 6502 đáng chú ý được đề cập
- Bo mạch phát triển hiện đại ( WDC W65C02SXB , Olimex Neo6502 )
- Bộ kit DIY (máy tính 6502 của Ben Eater)
- Máy tính cổ điển ( Commodore 64 , Apple II )
Ngoài 6502: Các CPU cổ điển thay thế
Cuộc thảo luận tự nhiên mở rộng đến các bộ xử lý cổ điển khác có thể phù hợp với các triển khai Forth. Motorola 6809 nhận được sự khen ngợi đặc biệt là vua của 8-bit, với kiến trúc của nó làm cho nó đặc biệt phù hợp cho Forth. Các bộ xử lý khác được đề cập bao gồm Signetics 2650, RCA 1802, và biến thể nâng cao 6309 của 6809.
Sự quan tâm liên tục đến các nền tảng điện toán cổ điển này chứng minh rằng các công nghệ cũ tiếp tục mang lại giá trị—không chỉ vì sự hoài niệm, mà còn như các công cụ giáo dục và nền tảng để khám phá các khái niệm điện toán cơ bản. Bản chất tối giản của cả Forth và các bộ xử lý cổ điển này tạo ra một môi trường nơi các nhà phát triển có thể hoàn toàn hiểu và kiểm soát mọi khía cạnh của trải nghiệm điện toán của họ, điều ngày càng hiếm trong bối cảnh điện toán trừu tượng ngày nay.
Cho dù là cho các ứng dụng thực tế trong các lĩnh vực ngách hay đơn giản là niềm vui khi hiểu điện toán ở mức cơ bản nhất, các dự án như milliForth cho 6502 cho thấy rằng điện toán cổ điển vẫn sống động và liên quan đến các nhà phát triển hiện đại.
Tham khảo: A milliForth for 6502