セカイノカタチスマートフォン用の表示で見るセカイノカタチ世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。技術書コンピュータやプログラミング言語を低レベル*1で理解するというのは、なかなか難しいものですよね。僕自身ずっとそのことが心の奥に引っかかっていて、もっと詳しくコンピュータのことが知りたい!と願っていたのですが、なんとなく続けてこの3冊を読んでみたところ、なんか凄くいい感じでした。これって凄い偶然なんだと思いますが、この3冊はそれぞれ守備範囲が異なっており、続けて読むことによって半導体からアセンブリ言語までの繋がりをスムーズに理解できる構成と順番になっています。それぞれ単体でもよく出来ていて面白い本なのですが、結果的に3冊読んでみて、それぞれの内容が頭のなかで一本の線で結ばれてより理解が深るという効果があり、とても得した気分です。見る1番手は、安定のマンガでわかるシリーズです。(^^;圧倒的な取っ付き易さが、一冊目としても最適です。いえ、内容は結構ハードで、うかうかしているとアッという間に置いて行かれるので注意が必要です。(^^;担当パートは、半導体の特性とトランジスタの仕組み、トランジスタを組み合わせた論理回路の構成までです。以下に続く本では、さらっと「AND回路」などと記号で紹介され、チップの中身としてしか存在しない回路の仕組みスポットライトがあたり、実際の動きを納得するまで理解することができます。トランジスタと言っても、実は出力特性が急峻なアナログ回路なので、実際のところでは色々悩ましい特性があったりして「コンピュータも所詮は機械装置なんだな」と見る目が変わるかもしれません。見るトランジスタや抵抗を組み合わせてCPUを作る本です。こちらも表紙がラブリーですね。電車の中で読むのがためらわれます。(^^;中身は至って真面目なハードウェアの本で、先ほど主役だったトランジスタは裏方に回り、チップや回路が主役になります。最終的には、ガチで演算ができ、プログラムも組める4bitコンピュータが出来上がります(作ってないですが(^^;)。機械語の命令の設計もしますので、トランジスタを組み合わせて作ったコンピュータが、機械語という人間との最低限のインターフェースを獲得するまでの様子を知ることができます。これまで、機械語なんてインテルとかIBMの偉い人が考えるものだと思っていましたが*2、市井のエンジニアにも手が届くシロモノだったのかと感動しました。見るアセンブリ言語の本は結構多いですが、この本は割りとハード寄りで説明もとても丁寧なので、凄く良いです*3。冒頭にて論理回路や加算器、メモリの仕組みなどのCPU内部のハードウェア的な説明が出てくるのですが、上記2冊を読んでいればすんなり入ってくるはずです。それどころか、実際のコンピュータが上記2冊の延長線上でどのような発展をしていくのかについて書かれているので、より理解が深まり、もう一度「CPUの作り方」を読み返したくなることうけあいです。IIを使った機械語の解説とアセンブリ言語との対応です。登場する由緒正しきコンピュータ学習用エミュレータです。専門学校の授業で使ったりもするみたいなので、名前を聞いただけで「うげっ」となる人もいるかと思いますが、遊んでみると案外おもしろいソフトです。コンピュータ機械内部の動きをステップ・バイ・ステップで追いかけることができるので、ある程度複雑なコンピュータ上で機械語がどのように解釈されて動くのかについての理解が捗ります。この本の終盤では、PentiumやPICなどの実際に利用されているCPUのアセンブリ言語を例にした解説もありますので、自分が使っているコンピュータと今までの話が繋がってきます。ここまで辿り着くと、長い小説で伏線が全て回収されて「そうなるのか!?」みたいな納得感と驚きを味わうことができるとおもいます。おわりにこれらの本を読むことによって、今までブラックボックスの部分の多かったコンピュータの一番低いところまで理解できるようになるはずです。実際のプログラミングにどこまで役立つかは未知数ですが、仕組みを知ることは本質的な理解の為の道標になることは間違いないと思います。コンピュータと言っても魔法の箱ではなく、所詮は電気の通った機械なんです。プログラマーだって所詮は血の通った人間ですもんね(?)。*1:勿論レベルが低いっていみじゃなくて低レイヤー。格闘ゲーマーが光速の遅さに気づいたようですが、...2016-07-12プログラミングとは、世界の複雑さを難しさに変換する作業だプログラミングとは、世界の複雑さを難しさに変換する作業だ。#haskell第2期第22回H本読書会を開催しました。はてなブログProシステム開発の世界で15年の山の民による、世界のカタチを探求するブログ。(4)はてなブログをはじめよう!qtamakiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。