デッドライン読書会もついに記念すべき42回目となりました。長続きしている。それだけデッドライン(締切)はエンジニアには特別な存在ということですね。「読書会を続けているとな、どんな志があってか?(吉田松陰風)」「いや…志の前に締切がありまして…」てきな。
課題図書(と、余談)
今後4回は通称パタヘネと呼ばれている名著に着手することにしました。パターソン&ヘネシーの「コンピュータの構成と設計」です。MIPS Editionの第6版を読み進めています。紙の書籍で。
初回の今回の範囲は、上巻の1章と2章が範囲でした。
パタヘネといえば、エンジニアって名乗るにはいずれこの本は読んでおきたいな~と(私が)思っている3冊のうちの1冊です。残りは、Code Completeとプログラミング言語C++かなぁ。Code Completeは10年ほど前に読んだので、パタヘネを読んだら残りはストラウストラップ先生だけとなる。(10年後くらいに読もう・・・)
感想
今回の範囲の章タイトルは下記の通り。
- 第1章:コンピュータの抽象化とテクノロジ
- コンピュータのアーキテクチャについて概観。設計のポイントとなる観点と歴史についてもふりかえる。
- 第2章:命令:コンピュータの言葉
- アセンブリ言語、命令セット、コンパイラなど。
本書は大学の講義に使われることを想定して作られている様子。いきなり突拍子もない難しいことが出てくるわけではなく、平易なことから難しい問いへ、トップダウンで全体像から詳細へが意識して構成されており読みやすい。また第6版ということもあり翻訳もちゃんとしていてすらすら読めるイメージです。
題材が新しい
第1章でコンピュータの内部構造について解説があるが、題材として取り上げていたのは、iPhone XS Maxの論理基盤であった。モバイルデバイスのチップを題材にするとはちょっと感動。ここの記事の写真が使われているようである。
また本書(上下巻)を通じて得たアイデアを例証するために「行列演算」を各章ごとに高速化することにチャレンジするみたい。第1章ではPythonで実装したこんな演算を、、、
for i in xrange(n):
for j in xrange(n):
for k in xrange(n):
c[i][j] += A[i][k] * B[k][j]
第6章までに44,226倍まで高速化するんだそうな。最初の例がPythonだっていうのもいい。
馴染みのある内容と無い内容がいったりきたり
2章で特に感じたが、馴染みのある素通りできるような内容と、ちょっとページを止めないと理解が追い付かない内容が混ざっている感じ(それが私の実力ってことなだけですが)。X進数や基礎的なプログラミング言語の構文はすらすら進められるけど、レジスタや、アドレッシング、命令セットアーキテクチャの話しになると指が止まる。このことから考えるに、独習で読み進めたい場合には、プログラミング経験があって、応用情報処理技術者試験に受かっているような人だと、着手できるんじゃないかなぁ。(ちなみに情報系の大学だとだいたい2年生くらいで授業があるようですね)
というわけで引き続き頑張る
上巻の後半は7月4日からです。引き続き頑張って読もう。
コメント