Lamina - backend compiler yang diimplementasikan sendiri tanpa dependensi
(github.com/SkuldNorniern)Lamina adalah proyek backend compiler yang menerima Intermediate Representation code (IR code) sebagai masukan lalu menghasilkan machine code/binary.
Proyek ini dimulai berdasarkan pembelajaran dan proyek saya tentang bahasa/compiler selama 4~5 tahun terakhir, dan saya berharap ini bisa menjadi referensi sederhana yang dapat dipahami secara intuitif bagi mereka yang tertarik pada compiler.
Platform yang saat ini didukung
- macOS (aarch64)
- Linux (x86_64)
- WebAssembly (wasm32/64)
Platform yang direncanakan untuk didukung
- Windows (x86_64)
- macOS (Intel)
- Linux (aarch64)
- Risc-V
Untuk Windows aarch64, karena penulis tidak memiliki perangkatnya, prioritasnya rendah sehingga untuk sementara diabaikan
Status saat ini
Saat ini belum ada pass optimisasi compiler, sehingga kecepatannya sedikit lebih lambat daripada C#.
Pada pembaruan berikutnya, layer Machine IR akan diimplementasikan, dan bersamaan dengan itu pass optimisasi juga direncanakan akan diperkenalkan.
Selain itu, sebelum rilis 0.1, sebagian besar konten yang dihasilkan dengan AI pada bagian Testcode dan codegen direncanakan akan dihapus lalu ditulis ulang
Contoh frontend compiler
Brainfuck-Lamina Repo - compiler Brainfuck sederhana
Fitur yang direncanakan untuk pengembangan selanjutnya
- Dukungan pembuatan kode GPU (nantinya akan digunakan sebagai backend untuk library ML buatan sendiri)
- Dukungan kompilasi JIT
- Penyediaan toolset seperti debugger
- Menyediakan assembler dan linker buatan sendiri (dukungan untuk utilitas yang sudah ada akan tetap dipertahankan)
2 komentar
Luar biasa sekali.
Ini masih proyek yang sangat kurang matang,
tapi terima kasih sudah melihatnya secara positif!
Saya harap saya bisa terus memperbaiki proyek ini sehingga dapat menjadi materi yang baik bagi orang-orang yang sedang mempelajari compiler.