- 一般的な通説に反して、Cは低水準言語ではないと主張する記事
- 著者のDavid Chisnallは、MeltdownとSpectreの脆弱性は、アクセス検査を越えて命令を実行するプロセッサの機能に起因すると示唆しており、この機能はCプログラマに自分たちが低水準言語でプログラミングしていると信じさせるために追加されたものだと述べる。
- Chisnallは、ある言語が「メタルに近い」というのは、その対象プラットフォームが公開する抽象化に容易に対応づけられる抽象機械を提供していなければならないことを意味すると主張し、Cではそれが実現されていないと論じる。
- 著者は、SpectreとMeltdownの脆弱性の根本原因は、プロセッサ設計者がPDP-11のような抽象機械を公開する高速プロセッサを作ろうとしたことにあると示唆しており、その結果、Cプログラマは自分たちの言語が基盤となるハードウェアに近いと信じ続けることができたとする。
- Chisnallは、Cコードを高速に実行させるには、複雑なコンパイラ変換と十分に賢いコンパイラを作るために数千人年が必要だと主張する。
- 著者は、低水準言語の中核的な性質とは、プログラマがその言語の抽象機械が基盤となる物理機械にどのように対応づけられるかを容易に理解できることであると提案し、Cではそれが当てはまらないと論じる。
- Chisnallは、Cコードを高速化しようとする試みをやめ、その代わりに高速プロセッサ上でプログラミングモデルがどのように見えるべきかを考える時期かもしれないと結論づける。純粋に速度のために設計されたプロセッサは、おそらく多数のスレッドをサポートし、広いベクターユニットを備え、はるかに単純なメモリモデルを持つだろうと述べている。
1件のコメント
Hacker Newsの意見