Developer Membuat Compiler Bahasa Pemrograman B Menggunakan "Crust" - Dialek Rust yang Disederhanakan

Tim Komunitas BigGo
Developer Membuat Compiler Bahasa Pemrograman B Menggunakan "Crust" - Dialek Rust yang Disederhanakan

Sebuah compiler baru untuk bahasa pemrograman B telah muncul dari komunitas developer, namun yang menarik perhatian bukan hanya kebangkitan bahasa bersejarah ini - melainkan pendekatan yang tidak biasa dalam membangunnya. Proyek ini menggunakan Crust, sebuah dialek Rust yang sengaja disederhanakan dengan menghilangkan banyak fitur keamanan modern dari bahasa tersebut demi pengalaman pemrograman yang lebih mirip C.

Huruf "B" mewakili bahasa pemrograman yang dibahas dalam artikel, melambangkan kebangkitan dan signifikansinya dalam sejarah komputasi
Huruf "B" mewakili bahasa pemrograman yang dibahas dalam artikel, melambangkan kebangkitan dan signifikansinya dalam sejarah komputasi

Eksperimen Crust Memicu Perdebatan

Aspek paling menarik dari proyek ini adalah penggunaan Crust, yang mengikuti seperangkat aturan tidak konvensional yang bertentangan dengan praktik pemrograman Rust pada umumnya. Setiap fungsi ditandai sebagai unsafe, referensi sepenuhnya dihindari demi raw pointer, dan standard library tidak boleh digunakan. Proses build melewati Cargo sepenuhnya, menggunakan rustc secara langsung.

Pendekatan ini telah membagi komunitas pemrograman. Beberapa developer mempertanyakan mengapa seseorang sengaja menghilangkan jaminan keamanan Rust ketika bahasa seperti Zig sudah menyediakan alternatif yang lebih aman untuk pemrograman bergaya C. Yang lain melihatnya sebagai eksperimen menarik dalam recreational programming, fokus pada kesederhanaan daripada kompleksitas.

Crust: Sebuah dialek Rust yang menghilangkan fitur keamanan seperti borrow checker dan penggunaan standard library

Aturan Bahasa Crust:

  • Setiap fungsi bersifat unsafe
  • Tidak ada references, hanya pointers
  • Tidak ada cargo, build langsung dengan rustc
  • Tidak ada std, tetapi libc diperbolehkan
  • Hanya Edition 2021
  • Semua struct dan enum pengguna [derive(Clone, Copy)]
  • Semuanya pub secara default

Berbagai Implementasi Bahasa B Bermunculan

Diskusi ini telah mengungkap bahwa beberapa developer telah bekerja pada compiler bahasa B secara independen. Anggota komunitas telah membagikan tautan ke implementasi mereka sendiri, menunjukkan minat yang berkembang untuk menghidupkan kembali pendahulu bahasa pemrograman C ini. Tren ini mencerminkan ketertarikan yang lebih luas terhadap sejarah komputasi dan keinginan untuk memahami bagaimana bahasa pemrograman awal bekerja.

Yang membuat implementasi khusus ini menonjol adalah dukungannya untuk berbagai platform target, termasuk virtual machine Uxn yang tidak biasa - sebuah platform komputasi minimalis yang telah mendapat pengikut kultus di antara developer yang tertarik pada lingkungan komputasi terbatas.

Dependensi Proyek:

  • Rust - bahasa implementasi compiler
  • fasm ( Flat Assembler ) - backend compiler
  • Target yang didukung meliputi fasm-x86_64-linux dan mesin virtual Uxn

Filosofi Recreational Programming

Proyek ini mewujudkan filosofi yang memprioritaskan pembelajaran dan eksperimen daripada kesiapan produksi. Compiler ini dilengkapi dengan framework testing komprehensif bernama btest yang menghasilkan laporan matriks di berbagai platform, memungkinkan developer melihat bagaimana bahasa tersebut berkinerja di berbagai lingkungan.

Pelajaran utama Tsoding adalah betapa sederhananya sistem dapat dibuat dan permintaan untuk sistem build yang kompleks adalah konyol.

Pendekatan ini beresonansi dengan developer yang merasa kewalahan oleh toolchain pengembangan modern dan merindukan masa-masa yang lebih sederhana ketika membangun software tidak memerlukan penguasaan sistem manajemen dependensi yang kompleks.

Compiler bahasa pemrograman B berfungsi sebagai pencapaian teknis sekaligus pernyataan tentang filosofi pengembangan. Meskipun mungkin belum siap untuk penggunaan produksi, ini menunjukkan bagaimana bahasa pemrograman bersejarah dapat dihidupkan kembali menggunakan alat modern, bahkan ketika alat tersebut sengaja dibatasi agar terasa lebih seperti nenek moyangnya.

Referensi: B Programming Language