9 điểm bởi skuldnorniern 2025-10-13 | 2 bình luận | Chia sẻ qua WhatsApp

Bài blog giới thiệu Releasing Lamina

Lamina là một dự án backend compiler nhận Intermediate Representation code (IR code) làm đầu vào và tạo ra machine code/binary.
Dự án được khởi đầu dựa trên quá trình học tập và các dự án về ngôn ngữ/trình biên dịch của tôi trong 4~5 năm qua, và tôi hy vọng nó sẽ trở thành một tài liệu tham khảo đơn giản, trực quan, dễ hiểu cho những ai quan tâm đến compiler.

Các nền tảng hiện đang hỗ trợ

  • macOS (aarch64)
  • Linux (x86_64)
  • WebAssembly (wasm32/64)

Các nền tảng dự kiến hỗ trợ

  • Windows (x86_64)
  • macOS (Intel)
  • Linux (aarch64)
  • Risc-V

Với Windows aarch64, do tác giả không có thiết bị nên tạm thời được xếp ưu tiên thấp và lược bỏ

Trạng thái hiện tại

Hiện chưa có optimization pass cho compiler, nên tốc độ hiện chỉ chậm hơn C# một chút.
Trong các bản cập nhật tiếp theo, lớp Machine IR sẽ được triển khai, đồng thời cũng dự kiến đưa vào các optimization pass.

Ngoài ra, trước bản phát hành 0.1, phần lớn nội dung được tạo bằng AI trong phần Testcode và codegen sẽ bị xóa và viết lại

Ví dụ về compiler frontend

Brainfuck-Lamina Repo - compiler Brainfuck đơn giản

Các tính năng dự kiến phát triển tiếp theo

  • Hỗ trợ sinh mã GPU (sau này dùng làm backend cho thư viện ML tự triển khai)
  • Hỗ trợ biên dịch JIT
  • Cung cấp bộ công cụ như debugger
  • Cung cấp assembler và linker tự triển khai (vẫn duy trì hỗ trợ các utility hiện có)

2 bình luận

 
cgl00 2025-10-13

Thật đáng kinh ngạc.

 
skuldnorniern 2025-10-14

Đây vẫn là một dự án còn nhiều thiếu sót,
nhưng cảm ơn bạn đã đánh giá tích cực!
Mình sẽ tiếp tục cải thiện dự án để hy vọng nó có thể trở thành tài liệu hữu ích cho những ai đang học về trình biên dịch.