RepositoryC++USHoa Kỳ
aardappel

aardappel/goose

The Goose Programming Language

2.3ksao
87fork
9issue
1lượt xem

🦆 Goose: Ngôn ngữ hệ thống không heap, nhanh như C++, an toàn như Rust

Goose xây dựng trên một ý tưởng đơn giản: không có heap. Mọi giá trị động đều sống inline trên một data stack do compiler quản lý.

Goose là một ngôn ngữ lập trình hệ thống an toàn bộ nhớ, nhanh hơn cả C++ và Rust an toàn, chạy với ít bộ nhớ hơn và không cần allocator, GC hay lifetime annotations. Tất cả dựa trên mô hình bộ nhớ dựa trên stack.

✨ Điểm nổi bật

  • Nhanh hơn C++ và Rust: Chạy 3.3x tốc độ C++ thông thường, 1.16x C++ tối ưu, 1.12x Rust an toàn
  • Không heap, không GC: Bộ nhớ là data stacks do compiler quản lý tĩnh, growth là pointer bump
  • Nothing ever moves: Tham chiếu vào mảng vẫn hợp lệ dù mảng tăng kích thước
  • An toàn với zero annotations: Compiler tự suy diễn lifetime, chỉ báo lỗi khi tham chiếu outlive owner
  • Flat all the way down: String, array, record đều là contiguous block, không có pointer
  • Enums tiết kiệm bộ nhớ: Variable-mode ADTs dùng kích thước variant thực sự
  • Links hẹp hơn pointer: Relative references lưu offset 1/2/4 byte, position independent
  • Built in place: Giá trị được tạo trực tiếp ở đích cuối cùng qua bất kỳ độ sâu call nào
  • Errors without plumbing: return err from load trả về nhiều frames mà không cần Result/unsafe
  • Threads share nothing: Worker là separate program, data crossing qua typed queues qua memcpy
  • Generics không overhead: Untyped parameter là generic, function values là compile-time entities
  • Plain C in, plain C out: Compile ra một file C, chạy ở bất kỳ đâu có C compiler

💡 Vì sao đáng chú ý

Goose khác biệt hoàn toàn với các ngôn ngữ hệ thống hiện nay bằng cách loại bỏ hoàn toàn heap. Điều này mang lại hiệu năng cấu trúc: tốc độ và bộ nhớ tốt hơn vì không có overhead của allocator hay GC. Đặc biệt đáng chú ý là khả năng tham chiếu luôn hợp lệ dù dữ liệu thay đổi kích thước, giúp tối ưu hoá đáng kể so với vector/Vec truyền thống.

Phù hợp cho hệ thống yêu cầu hiệu năng cao, tiết kiệm bộ nhớ và an toàn bộ nhớ mà không cần phức tạp lifetime management.


#ProgrammingLanguage #SystemsProgramming #MemorySafety #OpenSource #TiniX