アカウント名:
パスワード:
正解だよ。PDP-11 のアセンブラのアドレッシングモード(わかる?)だと、--iとi++しかないからね。でも、これは都市伝説の類。
PDP-11なんて知らなかったけど、68000のアセンブラのアドレッシングモードにも前置デクリメントと後置インクリメントしかなくて、当時のコンパイラでは実際にそれらを利用するコードを生成してたよ。都市伝説なのは「Cの++/--演算子は初めからそういうCPUの機能を使うことが目的で導入された」って部分でしょ。
>都市伝説なのは「Cの++/--演算子は初めからそういうCPUの機能を使うことが目的で導入された」って部分でしょ。
そなの?昔のCコンパイラはロクな最適化しなかったから、アセンブラチックな書き方できるように++/--演算子を導入したのかと思ってた。つまり、i++だとインクリメント命令一つに展開されるけど、i=i+1だとそうはならない、みたいな。
なんかa^=aと書くとa=0より速い的な話を連想しますね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy
-- は前置、++ は後置 (スコア:0)
対象 CPU が何だったのか記憶にありませんが、x86系でないのは確か。
と、ここまで書いて、逆だったかと思い始めた。。。
Re: (スコア:0)
正解だよ。PDP-11 のアセンブラのアドレッシングモード(わかる?)だと、--iとi++しかないからね。でも、これは都市伝説の類。
Re:-- は前置、++ は後置 (スコア:0)
PDP-11なんて知らなかったけど、68000のアセンブラのアドレッシングモードにも前置デクリメントと後置インクリメントしかなくて、当時のコンパイラでは実際にそれらを利用するコードを生成してたよ。都市伝説なのは「Cの++/--演算子は初めからそういうCPUの機能を使うことが目的で導入された」って部分でしょ。
Re: (スコア:0)
>都市伝説なのは「Cの++/--演算子は初めからそういうCPUの機能を使うことが目的で導入された」って部分でしょ。
そなの?
昔のCコンパイラはロクな最適化しなかったから、アセンブラチックな書き方できるように++/--演算子を導入したのかと思ってた。
つまり、i++だとインクリメント命令一つに展開されるけど、i=i+1だとそうはならない、みたいな。
Re: (スコア:0)
なんかa^=aと書くとa=0より速い的な話を連想しますね。