アカウント名:
パスワード:
いまだに結構使われていると思われる C は「低級言語」とか「高級アセンブラ」とか呼ばれたりすることがありますが、やはりアセンブリ言語レベルでの理解はいくらかは必要なものと思います。
たとえば、メモリがどのように使われるかを理解していないと、
char* int2str(int n){ char str[100]; sprintf(str, "%d", n); return str;}
上記のようなコードがなぜ問題なのか理解できないことでしょう。こーゆーのは多少高級になった C++ でも同様ですね。まあ欠陥言語ですけど。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
言語の弊害でしょう (スコア:2, 興味深い)
機械語を理解しなきゃいけない高級言語は欠陥言語です。
この前提からすると、プログラマはマシン語を理解する必要はない!
理解しなければならないとすると、使ってる言語が悪い
Re:言語の弊害でしょう (スコア:0)
いまだに結構使われていると思われる C は「低級言語」とか「高級アセンブラ」とか呼ばれたりすることがありますが、やはりアセンブリ言語レベルでの理解はいくらかは必要なものと思います。
たとえば、メモリがどのように使われるかを理解していないと、
上記のようなコードがなぜ問題なのか理解できないことでしょう。こーゆーのは多少高級になった C++ でも同様ですね。まあ欠陥言語ですけど。
Re:言語の弊害でしょう (スコア:0)
Cだとsetjmpなどを理解するにはアセンブラレベルの理解は必要でしょう。
でも、Prologくらい高級言語だとアセンブラは不要かな?
Lispだと???
Re:言語の弊害でしょう (スコア:0)
Lispマシンがどんな実装になってるのか知らないけど。
Re:言語の弊害でしょう (スコア:0)
チューニングのためにdisassembleしたり、デバッガでステップ実行するときはこのインストラクションレベルを普通に読んだり触ったりします。
これらのインストラクションはマイクロコードで実装されていて、OSのスピードクリティカルな部分等は直接マイクロコードで書かれていたりしたらしいので、OS実装者はマイクロコードの知識も必要だったのかもしれませんが、普通はそこまで見えなかったと思います。