-
Peningkatan yang Jelas untuk C
- Standar C23: Bahasa C terus ditingkatkan secara berkala dan kini telah mencapai C23. Namun, masih ada masalah-masalah yang belum terselesaikan.
- Upaya komunitas Dlang: Dengan menanamkan kompiler C (ImportC) ke dalam kompiler bahasa pemrograman D, terbuka peluang untuk menyelesaikan masalah-masalah tersebut.
-
Evaluasi ekspresi konstan
- Masalahnya: C dapat menghitung ekspresi sederhana pada waktu kompilasi, tetapi tidak dapat menjalankan fungsi.
- Solusi ImportC: ImportC memungkinkan eksekusi fungsi pada waktu kompilasi sehingga dapat mengatasi keterbatasan ini.
-
Unit test pada waktu kompilasi
- Masalah di C: Unit test dalam kode C memerlukan target build terpisah sehingga merepotkan.
- Kelebihan ImportC: ImportC memudahkan pelaksanaan unit test melalui evaluasi fungsi pada waktu kompilasi.
-
Referensi maju deklarasi
- Keterbatasan C: C peka terhadap urutan deklarasi dan tidak mengizinkan referensi maju.
- Kelebihan ImportC: ImportC tidak terikat pada urutan deklarasi dan mengizinkan deklarasi global dalam urutan apa pun.
-
Mengimpor deklarasi
- Masalah pendekatan lama: Ada kerepotan karena harus menulis file
.h untuk setiap modul eksternal.
- Solusi ImportC: ImportC dapat mengimpor deklarasi tanpa file
.h, sehingga lebih efisien.
-
Referensi
- Dokumentasi ImportC: Menyediakan informasi lebih rinci tentang ImportC.
- Dokumentasi bahasa D: Menyediakan informasi tambahan tentang bahasa D.
1 komentar
Opini Hacker News
File header dalam bahasa C bagus karena dapat membedakan dengan jelas antara yang publik dan nonpublik, antarmuka dan implementasi. Melalui file
.h, cara penggunaan library bisa dipahami dengan mudah.h, sehingga tampil berbeda dari file.c.c, tetapi itu membuat antarmuka jadi tidak nyaman dibacaAda pendapat bahwa bahasa C seharusnya bisa menjalankan fungsi saat waktu kompilasi, tetapi fungsi dengan waktu eksekusi panjang bisa menjadi masalah
busybeaverAda rasa ingin tahu tentang solusi untuk masalah seperti evaluasi ekspresi konstan, unit test saat waktu kompilasi, referensi maju deklarasi, dan impor deklarasi
Menulis unit test untuk kode C dapat dilakukan dengan build system yang baik dan sedikit boilerplate
npyJika evaluasi ekspresi konstan menjadi rumit, kecepatan compiler bisa menurun dan mungkin memerlukan VM
Unit test saat waktu kompilasi mengambil alih kendali dari pengembang dan menuntut prosedur yang tidak perlu untuk menyelesaikan pekerjaan
Ada diskusi tentang apakah lebih baik membuat definisi fungsi secara "top-down"
Fitur-fitur yang diharapkan ditambahkan ke bahasa C
deferdi Go dan ZigImplementasi C yang sederhana adalah kelebihannya, dan memperluas cakupannya secara besar-besaran bukan ide yang baik
Alasan mengapa definisi fungsi dari atas ke bawah lebih baik