- आम धारणा के विपरीत, यह लेख तर्क देता है कि C एक low-level language नहीं है
- लेखक David Chisnall सुझाव देते हैं कि Meltdown और Spectre जैसी कमजोरियां उन processors की क्षमता के कारण हैं जो access checks को पार करके instructions execute करते हैं, और यह क्षमता C programmers को यह विश्वास दिलाने के लिए जोड़ी गई थी कि वे low-level language में programming कर रहे हैं.
- Chisnall का तर्क है कि किसी भाषा का "metal के करीब" होना यह मांग करता है कि वह ऐसी abstract machine दे जिसे target platform द्वारा exposed abstractions पर आसानी से map किया जा सके, और उनका कहना है कि C में ऐसा नहीं होता.
- लेखक सुझाव देते हैं कि Spectre और Meltdown vulnerabilities का मूल कारण यह है कि processor architects PDP-11 जैसी abstract machine को expose करने वाले तेज processors बनाना चाहते थे, जिससे C programmers यह मानते रह सकें कि उनकी language underlying hardware के करीब है.
- Chisnall का दावा है कि C code को तेज चलाने के लिए जटिल compiler transformations और पर्याप्त रूप से smart compiler बनाने में हजारों person-years की जरूरत पड़ती है.
- लेखक यह प्रस्ताव रखते हैं that low-level language की मुख्य विशेषता यह होनी चाहिए कि programmers आसानी से समझ सकें कि भाषा की abstract machine underlying physical machine पर कैसे map होती है, और उनका कहना है कि C में ऐसा नहीं है.
- Chisnall निष्कर्ष निकालते हैं कि शायद C code को तेज बनाने की कोशिश बंद करने और इसकी जगह यह सोचने का समय है कि तेज processors पर programming model कैसा दिखना चाहिए. वे सुझाव देते हैं कि पूरी तरह speed के लिए designed processors शायद बड़ी संख्या में threads को support करेंगे, wide vector units रखेंगे, और कहीं अधिक सरल memory model होगा.
1 टिप्पणियां
Hacker News राय