- Yaygın inanışın aksine, C'nin düşük seviyeli bir dil olmadığı iddiasını savunan bir yazı
- Yazar David Chisnall, Meltdown ve Spectre açıklarının erişim kontrollerini aşarak komut çalıştıran işlemci özelliklerinden kaynaklandığını öne sürüyor; bu özelliklerin de C programcılarının düşük seviyeli bir dilde programlama yaptıklarına inanmalarını sağlamak için eklendiğini savunuyor.
- Chisnall, bir dilin "metale yakın" sayılması için hedef platformun sunduğu soyutlamalara kolayca eşlenen bir soyut makine sunması gerektiğini, bunun ise C için geçerli olmadığını ileri sürüyor.
- Yazar, Spectre ve Meltdown açıklarının kök nedeninin, işlemci mimarlarının PDP-11 gibi soyut makineleri görünür kılan hızlı işlemciler üretmeye çalışması olduğunu öne sürüyor; bunun sonucunda C programcıları dillerinin temel donanıma yakın olduğuna inanmaya devam edebildi.
- Chisnall, C kodunu hızlı çalıştırmak için karmaşık derleyici dönüşümlerine ve yeterince akıllı derleyiciler geliştirmek adına binlerce insan-yılına ihtiyaç olduğunu savunuyor.
- Yazar, düşük seviyeli bir dilin temel özelliğinin, programcıların dilin soyut makinesinin alttaki fiziksel makineye nasıl eşlendiğini kolayca anlayabilmesi olduğunu öne sürüyor; C'de ise durumun böyle olmadığını iddia ediyor.
- Chisnall, C kodunu hızlandırma çabalarını bırakıp bunun yerine hızlı işlemcilerde programlama modelinin nasıl görünmesi gerektiğini düşünmenin zamanı gelmiş olabileceği sonucuna varıyor. Ona göre yalnızca hız için tasarlanmış işlemciler muhtemelen çok sayıda thread'i destekleyecek, geniş vektör birimlerine sahip olacak ve çok daha basit bir bellek modeline sahip olacaktır.
1 yorum
Hacker News görüşleri
structpadding ve signed overflow'un tanımsız davranış olması gibi özellikler nedeniyle C'nin düşük seviyeli bir dil olmadığı yönündeki makale iddiası yapıcı görünüyor.