chmykh/apl-life
Conway's Game of Life in APL in FORTH: how to implement a weird programming language using another weird programming language
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#1 Repository Của Tuần
#1 Repository Của Tuần
#1 Repository Của Tuần
🚀 FORTH + APL = Game of Life? Thử điếu này!
Một dự án điên rồ: dùng FORTH (một ngôn ngữ cực kỳ thấp cấp) để dịch và thực thi một chương trình APL — và kết quả là Conway's Game of Life.
Đây là dự án của chmykh, viết bằng gforth 0.7.2, nơi tác giả cố gắng cài đặt Game of Life dưới dạng một câu lệnh duy nhất bằng APL nhưng được thực thi hoàn toàn trong môi trường FORTH. Mục tiêu? Không chỉ là chơi, mà là khám phá cách một ngôn ngữ “lạ” như APL có thể được dịch và chạy qua một ngôn ngữ “lạ” khác — FORTH.
✨ Điểm nổi bật
- Dịch ngôn ngữ APL sang FORTH: Cài đặt một bộ dịch nhỏ để biến mã nguồn APL thành mã FORTH thực thi được.
- Tự cài đặt mảng đa chiều: FORTH không có mảng, nhưng dự án tự xây một hệ thống mảng hỗ trợ mảng lồng nhau và đa chiều.
- Hỗ trợ hàm cao cấp: Bao gồm currying, closure, và hàm bậc cao nhất — tất cả trong ~200 dòng mã.
- Thực thi Game of Life bằng APL: Một phiên bản Conway's Game of Life được viết bằng APL nhưng chạy hoàn toàn trong FORTH.
- Chạy trong bộ nhớ siêu nhỏ: Toàn bộ chương trình chỉ dùng dưới 2.5K từ nhớ.
- Hỗ trợ Unicode: Sử dụng trực tiếp các ký tự Unicode của APL trong mã nguồn FORTH.
- Tương tác ngay trong trình biên dịch: Code đồng thời là lịch sử phiên bản phát triển, chạy thử từng dòng ngay trong gforth.
- Phong cách code rõ ràng: Tránh dùng lệnh xếp chồng stack phức tạp, thay vào đó dùng biến cục bộ để tăng tính đọc được.
💡 Vì sao đáng chú ý
Đây không phải là một dự án thiết thực, mà là một hành trình khám phá biên giới giữa hai ngôn ngữ “khó hiểu” nhau — FORTH với cú pháp tối giản và APL với cú pháp mật mã. Tác giả không chỉ cài đặt Game of Life, mà còn xây dựng từ đầu hầu hết mọi thứ: mảng, hàm cao cấp, dịch ngôn ngữ — tất cả trong khoảng 200 dòng. Điều này cho thấy sức mạnh của FORTH khi cho phép truy cập trực tiếp vào bộ biên dịch và bộ nhớ, cho phép người dùng “salto” từ mức byte lên tới trừ nhận thức cao cấp một cách nhanh chóng.
Phù hợp với bất kỳ ai muốn hiểu sâu về cách hoạt động nội bộ của một ngôn ngữ lập trình, hoặc thích thử thách mình với những cách tiếp cận lập trình không chuẩn.
#APL #FORTRANg #GameOfLife #ConwayLife #TiniX
Similar Projects
Discover other similar projects and AI models.
C++ Matrix: The Matrix Reloaded in Terminals (Number falls, Banners, Matrix rains, Conway's Game of Life and Mandelbrot set)
Generates a 2D animation of Rule 30 (or other rules) being fed into Conway's Game of Life.