RepositoryForth
chmykh

chmykh/apl-life

Conway's Game of Life in APL in FORTH: how to implement a weird programming language using another weird programming language

102sao
6fork
0issue
2lượt xem

Thành tựu nổi bật

Những danh hiệu mới nhất của dự án

1
TINIX TRENDING·Chủ đề: apl

#1 Repository Của Tuần

1
TINIX TRENDING·Chủ đề: conways-game-of-life

#1 Repository Của Tuần

1
TINIX TRENDING·Chủ đề: forth

#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

Dự án tương tự

Khám phá các dự án và mô hình AI khác có sự tương đồng.

RepositoryC++
akinomyoga/cxxmatrix

C++ Matrix: The Matrix Reloaded in Terminals (Number falls, Banners, Matrix rains, Conway's Game of Life and Mandelbrot set)

738
Jun 17, 2024
RepositoryPython
ljvmiranda921/seagull

A Python Library for Conway's Game of Life

190
May 7, 2026
RepositoryPython
elliotwaite/rule-30-and-game-of-life

Generates a 2D animation of Rule 30 (or other rules) being fed into Conway's Game of Life.

162
Jan 11, 2024
RepositoryForth
tabemann/zeptoforth

A not-so-small Forth for Cortex-M

357
Oct 27, 2026
RepositoryForth
phreda4/r3

r3 programing language - ColorForth inspired

231
Oct 27, 2026
RepositoryForth
forthy42/gforth

Gforth mirror on GitHub (original is on Savannah)

191
Oct 28, 2026
RepositoryForth
meithecatte/miniforth

A bootsector FORTH

162
Mar 19, 2025
RepositoryForth
ams-hackers/gbforth

👾 A Forth-based Game Boy development kit

151
Oct 9, 2025
RepositoryForth
phreda4/r4

:r4 concatenative programming language with ideas from ColorForth.

141
Jul 17, 2025