- Artikel yang berargumen bahwa, bertentangan dengan kepercayaan populer, C bukanlah bahasa tingkat rendah
- Penulis David Chisnall mengusulkan bahwa kerentanan Meltdown dan Spectre disebabkan oleh kemampuan prosesor untuk mengeksekusi instruksi melewati pemeriksaan akses, dan bahwa fitur ini ditambahkan agar para pemrogram C percaya bahwa mereka sedang melakukan pemrograman dalam bahasa tingkat rendah.
- Chisnall berargumen bahwa agar sebuah bahasa "dekat dengan metal", bahasa tersebut harus menyediakan mesin abstrak yang dapat dipetakan dengan mudah ke abstraksi yang diekspos oleh platform target, dan ia menyatakan bahwa hal ini tidak terjadi pada C.
- Penulis mengusulkan bahwa akar penyebab kerentanan Spectre dan Meltdown adalah karena para arsitek prosesor mencoba membuat prosesor cepat yang mengekspos mesin abstrak seperti PDP-11, sehingga para pemrogram C dapat terus percaya bahwa bahasa mereka dekat dengan perangkat keras dasar.
- Chisnall berargumen bahwa agar kode C dapat berjalan cepat, diperlukan transformasi kompiler yang kompleks dan ribuan orang-tahun untuk membuat kompiler yang cukup cerdas.
- Penulis mengusulkan bahwa sifat inti dari bahasa tingkat rendah adalah para pemrogram harus dapat dengan mudah memahami bagaimana mesin abstrak bahasa tersebut dipetakan ke mesin fisik yang mendasarinya, dan ia menyatakan bahwa hal ini tidak berlaku untuk C.
- Chisnall menyimpulkan bahwa mungkin sudah waktunya berhenti mencoba membuat kode C menjadi cepat, dan sebagai gantinya meluangkan waktu untuk memikirkan seperti apa model pemrograman pada prosesor cepat. Ia mengusulkan bahwa prosesor yang dirancang murni untuk kecepatan kemungkinan akan mendukung sejumlah besar thread, memiliki unit vektor yang lebar, dan model memori yang jauh lebih sederhana.
1 komentar
Opini Hacker News
structdan fakta bahwa signed overflow adalah undefined behavior tampak konstruktif.