GEBを読む:記述のレベルとコンピュータシステム(2)
走っているプログラムを記述するためのレベル
エラーが発生した場合は低レベルではなくて、高レベルで記述したユーザに高レベルの情報を提供する必要がある。コンパイラ言語、アセンブリ言語、機械語は異なる次元にあるので、エラー内容もそれに合わせた情報を提供しましょうという話。
マイクロプログラミング
固定配線化。CISCとRISCの話か。久々にこの単語調べたわ!資格取る時に勉強しただけで実際意識することがない。触れる機会もない。今現在のCPU技術がどうなってんのもさっぱりなんだよなぁ。
コンピュータは超柔軟だろうか?超厳格だろうか?
コンピュータはスペルミスまで面倒見てくれないよという話。
プログラマーを予測する
ある種の不正確さが許されるようなプログラミング言語を考える。
(1) 利用者はその言語とその翻訳プログラムに組み込まれている柔軟性を知っている
(2) 利用者はそれらのことを知らない
(3) 利用者はその言語とその翻訳プログラムに組み込まれている柔軟性を知っているが、許される事柄があまりにも多くまた複雑に絡み合っているので、彼のプログラムがどのように解釈されるのかわからない
こんな例しか思いつかないけど、PHPだったら、$a = '100'; $a == 100 はtrueになる。if ($a)もtrueだ。もっと間違いやすい例では$a = '0'; if ($a)だ。これはfalseになる。厳密な解釈は自分でもわかってないけど、数値文字列は数値として評価され、数値0はbool型ではfalseになるからだと思う。
この誤解によって生まれるバグもあった(確かmixiのアクセスブロックのバグの原因がこれ)
AIの進歩は言語の進歩である
ってなんかわかるようで納得いかないなぁ。鍵盤使いじゃないからか。単音か和音かの違いの方がまだわかる。
偏執病者とオペレーティングシステム
計算機初心者はアプリケーションとOSの違いがわからないというレベル混同
→スクリーンは1つだから
こうしたユーザのレベル混同をコンピュータが理解して適切に処理するなんてできるのか…?
ソフトウェアとハードウェアの境界
なるほど、物理的なものかそうでないか、かな。ハードウェアは運送屋に運んでもらわないといけないけど、情報は信号で伝えることができる。
人間にもハードウェアとソフトウェアがある。ハードウエアは選択ができない。メモリ追加するように記憶力増やすことはできない。しかしソフトウェアを変更して環境に耐えることはできる。
コンピュータのハードウェアと人間のハードウェアを同じにしないと人工知能なんて無理だと思う。でもコンピュータのソフトウェアで人間のハードウェアをエミュレートするというのが主流だと思うけど、これでどこまでいけるんだろう。
コメント
コメントできません (ログインするとコメントできます)
コメントはまだありません