Pembangun Mencipta Kompiler Bahasa Pengaturcaraan B Menggunakan "Crust" - Dialek Rust Yang Dipermudahkan

Pasukan Komuniti BigGo
Pembangun Mencipta Kompiler Bahasa Pengaturcaraan B Menggunakan "Crust" - Dialek Rust Yang Dipermudahkan

Sebuah kompiler baharu untuk bahasa pengaturcaraan B telah muncul daripada komuniti pembangunan, tetapi yang menarik perhatian bukan sahaja kebangkitan semula bahasa bersejarah ini - tetapi pendekatan luar biasa untuk membinanya. Projek ini menggunakan Crust , sebuah dialek Rust yang sengaja dipermudahkan yang menghilangkan banyak ciri keselamatan moden bahasa tersebut demi pengalaman pengaturcaraan yang lebih seperti C .

Huruf "B" mewakili bahasa pengaturcaraan yang dibincangkan dalam artikel, melambangkan kebangkitan semula dan kepentingannya dalam sejarah pengkomputeran
Huruf "B" mewakili bahasa pengaturcaraan yang dibincangkan dalam artikel, melambangkan kebangkitan semula dan kepentingannya dalam sejarah pengkomputeran

Eksperimen Crust Mencetuskan Perdebatan

Aspek paling menarik projek ini ialah penggunaan Crust , yang mengikuti set peraturan luar biasa yang bertentangan dengan amalan pengaturcaraan Rust biasa. Setiap fungsi ditandakan sebagai tidak selamat, rujukan dielakkan sepenuhnya memihak kepada penunjuk mentah, dan perpustakaan standard adalah terlarang. Proses pembinaan memintas Cargo sepenuhnya, menggunakan rustc secara langsung.

Pendekatan ini telah memecahbelahkan komuniti pengaturcaraan. Sesetengah pembangun mempersoalkan mengapa sesiapa akan sengaja menghilangkan jaminan keselamatan Rust apabila bahasa seperti Zig sudah menyediakan alternatif yang lebih selamat kepada pengaturcaraan gaya C . Yang lain melihatnya sebagai eksperimen menarik dalam pengaturcaraan rekreasi, memfokuskan kepada kesederhanaan berbanding kerumitan.

Crust: Dialek Rust yang menghilangkan ciri keselamatan seperti pemeriksa peminjaman dan penggunaan perpustakaan standard

Peraturan Bahasa Crust:

  • Setiap fungsi adalah tidak selamat
  • Tiada rujukan, hanya penunjuk
  • Tiada cargo, bina dengan rustc secara langsung
  • Tiada std, tetapi libc dibenarkan
  • Hanya Edition 2021
  • Semua struct dan enum pengguna [derive(Clone, Copy)]
  • Segala-galanya adalah pub secara lalai

Pelbagai Pelaksanaan Bahasa B Muncul

Perbincangan telah mendedahkan bahawa beberapa pembangun telah bekerja pada kompiler bahasa B secara bebas. Ahli komuniti telah berkongsi pautan kepada pelaksanaan mereka sendiri, menunjukkan minat yang semakin meningkat untuk menghidupkan semula pendahulu bahasa pengaturcaraan C ini. Trend ini mencerminkan daya tarikan yang lebih luas terhadap sejarah pengkomputeran dan keinginan untuk memahami bagaimana bahasa pengaturcaraan awal berfungsi.

Apa yang menjadikan pelaksanaan khusus ini menonjol ialah sokongannya untuk pelbagai platform sasaran, termasuk mesin maya Uxn yang luar biasa - platform pengkomputeran minimalis yang telah mendapat pengikut tegar di kalangan pembangun yang berminat dengan persekitaran pengkomputeran terhad.

Kebergantungan Projek:

  • Rust - bahasa pelaksanaan pengkompil
  • fasm (Flat Assembler) - bahagian belakang pengkompil
  • Sasaran yang disokong termasuk fasm-x86_64-linux dan mesin maya Uxn

Falsafah Pengaturcaraan Rekreasi

Projek ini merangkumi falsafah yang mengutamakan pembelajaran dan eksperimen berbanding kesiapan pengeluaran. Kompiler ini dilengkapi dengan rangka kerja ujian komprehensif yang dipanggil btest yang menjana laporan matriks merentas platform berbeza, membolehkan pembangun melihat bagaimana bahasa tersebut berprestasi dalam pelbagai persekitaran.

Pengajaran utama Tsoding ialah betapa mudahnya sistem boleh menjadi dan permintaan untuk sistem pembinaan yang kompleks adalah tidak masuk akal.

Pendekatan ini bergema dengan pembangun yang berasa terharu dengan rantaian alat pembangunan moden dan merindui masa yang lebih mudah apabila membina perisian tidak memerlukan penguasaan sistem pengurusan kebergantungan yang kompleks.

Kompiler bahasa pengaturcaraan B berfungsi sebagai pencapaian teknikal dan kenyataan tentang falsafah pembangunan. Walaupun ia mungkin tidak bersedia untuk kegunaan pengeluaran, ia menunjukkan bagaimana bahasa pengaturcaraan bersejarah boleh dihidupkan semula menggunakan alat moden, walaupun alat tersebut sengaja dikekang untuk berasa lebih seperti nenek moyang mereka.

Rujukan: B Programming Language