「きつねさんでもわかるLLVM」読んだ

おそらく日本語では初のLLVMの本。LLVMとはなんぞやから始まり、インストールの手順、LLVM-IRの説明といき、DummyC(C言語のちょーサブセット)を対象としたフロントエンドの実サンプルの作成、Passの説明と実例、MIPSサブセットチックな仮想アーキテクチャをターゲットにしたバックエンドの作成、という構成になっている。

はしがきを読んであらビックリ。元はコミケで配布した本で、それが基となって電子書籍版が販売され、そして紙の本の書籍化になったようだ。謝辞や著者説明にTwitter ID が書かれていたりと、そういう方面でのカルチャーショックが大きかった。

「きつねさんでもわかる」内容なのかどうかは大いに疑問の残るとこだけど、それを置いといたとしても、この本はどういう人を対象にしているのかにはよく注意しないといけない。サブタイトル「コンパイラを自作するためのガイドブック」が非常に大事なところで、その上で、C/C++はコードを読むのに不自由しない程度の知識と経験、Linuxはそれなりに触ったことがある、gccが内部で何やってんのかが簡単にでも想像できる、あたりは最低必要でしょう。加えて、シェアドライブラリやELFについての知識、アセンブラや命令セットを見ても拒否反応を示さない、BNF記法に多少は馴染みがある、くらいでないと正直つらいと思う。逆に、実際に動くサンプルを作ってみるところまでを目標にした本なので、日常的にgccのRTLを眺めたりプログラムを命令ステップ実行したりしてる人には、内容がちょっと退屈かもしれない。

7.1章で著者が「んなもんソースコード読めよバーカ」と言いたげそうに悲鳴をあげている箇所があったり、5章と7章それぞれ半分以上が淡々とC++のソースコードを解説しているだけだったり、そういうところにコンパイラを作ることの大変さが見え隠れしてます。コンパイラを作ろうと思ったらソースコードどっぷりにつかる覚悟はやっぱ必要です。少なくとも紀伊国屋グランフロント大阪店のようにC言語の解説本の横に平積みしておくのは、大きな間違いだと思われます。きつねさんなので、置くならやっぱりオライリーの動物本の横辺りでしょう。O'Reillyよ、これがJapanese Animalsだ、と(謎)

決してこの本も悪いとまでは言い切れないけど、いくつかコンパイラ特有の考え方が説明なしに登場している箇所もあるあたり、一般的なコンパイラの作り方なら他の本を先に読んだほうがいいかもしれない。その上で、LLVMを使って実際にオレ言語とオレコンパイラを作ってみるというフェーズでこの本を手に取る方がいいようには思える。とはいえ動いてナンボの実例がGithub(DummyCCompiler, llvm-sample-target)で本を買わなくても手に入ってしまうあたり、公開されてるソースコードを見ただけじゃ中身が理解できないような人がこの本を買うべきという感じなのかもしれない。

というわけで、さすがにこれは、買った方がいい人はかなり限られる・・・

このブログ記事について

このページは、らるるが2013年8月18日 02:04に書いたブログ記事です。

ひとつ前のブログ記事は「続: SQL使ってテーブルからランダムにN件引っ張りたい場合」です。

次のブログ記事は「続々: SQL使ってテーブルからランダムにN件引っ張りたい場合」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.5.0