アカウント名:
パスワード:
・スタック・ポインタ(アドレス)・ビット演算正直どれも要らない。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
旅行者の法則 (スコア:5, 興味深い)
自分が機械語解るからって、先輩面しちゃいけませんね。
ショクレー先生に「コンピュータは半導体を自分で接合してから初めて『使える』と言うのです」と
説教してもらいたいです。あとこのコピペも。
696 :Mr.名無しさん :2007/01/09(火) 22:53:01
電車のボックスシート(2人掛けの席が向かい合っている)で、
隣に座ったオヤジが激しくふんぞり返って股を広げきっていたので、
わたし「狭いんですけど」と言ったら、
オヤジ「しょうがないだろう!これ以上どうやってよけるんだ?」
わたし「どうやっても何も、他の人はきちんと座れ
Re:旅行者の法則 (スコア:5, おもしろおかしい)
「昨今のCPUはマシン語からμopに変換するので、マシン語は相対的に高級言語だ。
だからマシン語はμopを理解してから初めて云々」
と言って欲しいですね。
知っていて欲しいのはSQLの処理のされかたぐらい (スコア:4, 参考になる)
じゃあプログラマがマシン語のようなものを通じて知っておくべき知識ってなんだろう?
・スタック
・ポインタ(アドレス)
・ビット演算
正直どれも要らない。
プログラミングの基礎として知っておいて欲しいのはこんなところじゃないかな。
・無駄なリソースを使いまくらない。
・実際にどうやって処理されるか考えて書こう。
特にSQLなんかだと、テキトーに書いて一生終わらないクエリがよくあるので、データベースの中でどのように処理されるのか想像できるぐらいの知識が欲しい。
Re:知っていて欲しいのはSQLの処理のされかたぐらい (スコア:2, 参考になる)
Javaやスクリプト言語でWeb系開発するくらいなら、概ね同意ですが、
CやC++を生業としてる人や、組み込み系な人は、上記3項目は基礎知識として必要じゃないですかね。
プログラミングと一口に言っても、ワンマイコンチップのファームウェアから、ビジネスロジックまで、
いろいろあるから、こればかりは、分野によるでしょうなあ。
そういう意味では、SQLの仕組みの知識についても、分野次第で、必要だったり不要だったり。
私の場合、C++でSQLクエリエンジンを実装したことがあるので、どちらもやる羽目に。。。
Re:知っていて欲しいのはSQLの処理のされかたぐらい (スコア:1)
スタックもまぁ知らなくてもいいのかもしれないけど、Stackってクラスがあってスタックを知らなければ名前の由来さえわからないのかも?
渡しは仕事がアセンブラ→C→→C++→Javaと段階的に変化してきました。もうアセンブラなんてうっすらとしか覚えてないけど、やはり知っててよかったなーとおもいます。
Re:知っていて欲しいのはSQLの処理のされかたぐらい (スコア:1, 参考になる)
そうやって理解しちゃうと、たとえば Algol60 の「名前渡し」なんか理解不能でしょ?
Algol60 はちょっと古いけど、新しいところでは Haskell なんかの引数渡し方法の理解にも障害が出るよ。
「値渡し」とか「参照渡し」とかは、そのような概念として理解して
「参照渡し」の実現方法としてある種のハードウェアではアドレスを「値渡し」することが
慣習上行われているが絶対唯一の方法ではないことをよく考えたほうがいいな。
ハードウェアとかマシン語とかの理解をベースにしちゃうと
考え方の幅が制限されて結局「プログラミング」の理解の妨げになるんだよ。
自分が一般的なハードウェアだと思っているものが
ごく特殊な実現方法がたまたま現在主流になっているだけだということもね。
Re:知っていて欲しいのはSQLの処理のされかたぐらい (スコア:0)
まあ、「名前渡し」というか単に文字列として置換しているだけですけど。
ja.wikipediaにある例だと、
#define swap(x,y) do{ tmp = (x); (x) = (y); (y) = tmp; }while(0)
に対し、swap(i,a[i])と書くと、
a[a[i]]=i;
になる。i=2とすると、
a[a[2]]=2;
となる。