マシン語をしゃべらない者は人にあらずの話(http://d.hatena.ne.jp/suikan/20070911/1189494553)
iA32やARMのような汎用プロセッサの命令セット、マシンアーキテクチャを知ることが、よいプログラムを書く上で必須かというと、私ははっきりと首を横に振ります。
包括されるアルゴリズムよりももっと低レベルな部分として「インデックス付きアドレス参照」とか「ポストインクリメントレジスタ参照」とか「ゼロレジスタフラグによる分岐」などを知っていると、ピュアなノイマン型コンピュータと高級言語(たとえばC言語)の間に横たわる何かはだいぶ見えるとは思っています。
そういう意味では、「高レベルなプログラムを組む者は命令セットや各アドレッシングが存在する理由を知るべきである」とも思います。あ、べきとまで言うと強いですかね。
……でも、IA-32って、これを学習するには激しく向いてないと思いますが(^^;)。shi3zさんの論の最大の突っ込みどころは、IA-32を例示したことだと思うんですけどねぇ。
- 高レベルでプログラムを組むということ(http://d.hatena.ne.jp/Florian/20070901/1188598828)
- Squeakers' Night in 未来パーティ二次会で話した(ある意味失礼な)話の個人的サマリ(http://d.hatena.ne.jp/Florian/20051031/1130736151)とコメント(http://d.hatena.ne.jp/Florian/20051031#c)
- フォン・ノイマン型コンピュータを扱うということ(http://d.hatena.ne.jp/Florian/20051101/1130826491)とコメント(http://d.hatena.ne.jp/Florian/20051101#c)