Entry

今読んでる本 - 『Cコンパニオン』

2009年03月08日

古本屋でこんないい本もあったなー……とか思いつつ買ったので読んでます。100円で買った本書,BOOKOFF が本の価値を分かってなくてよかったと,心から感謝。

Cコンパニオン
Cコンパニオン
posted with amazlet at 09.03.08
Allen I. Holub
オーム社
売り上げランキング: 1003856

絶版なので,ちょっと手に入れにくいとは思うんですけれど,本書のような本は,今どきありません。レビューを書いている方がいるかと思って調べてみたんですけれど,それもあまりない。ぐぐってもきれいなおねいさん(宴会コンパニオン)のページばっかが出てくるもんで,なんだかなぁ……。

それでも頑張って調べたところ,レビューっぽい話を書いている方を見つけたので,ちと紹介しておきます。

入門用書籍はいろいろあるのですが、中級~上級でよい本は少ない気がしています。私は、アレン・ホラブ(allen holub)氏の書籍でCを学びました。とくにドロップアウト宣言(自分の良心に従ってF-16の制御ソフトの仕事を拒否した経緯等を記している。技術書にはあまり見ない内容。)の掲載されている「Cの宝箱」は、C言語で必要なテクニックをまとめた文字通りCプログラマにとって宝箱といえる内容です。お勧めですが、現在は絶版で古本では定価の2倍程度のプレミアがついているようです。

「Cコンパニオン」はC言語とマシン語の関係をわかりやすく解説している唯一?の本です。この本が理解できるようになれば中級でしょう。

教えて! Watch Javaをもう一度勉強したいのですが・・・

C/C++ にしても Java にしても,初心者用の書籍はたくさんあるんですけれど,ある程度知っている人に向けた「それから」を検討している書籍は本当に少ない。あるとしても,少し踏み込んだトピックを集めた,裏技集みたいな位置づけだったりします。実は裏技でもなんでもないんですが。

推測するに,こゆことになる原因は,単純に次のような事情があるからじゃないだろうか。

  • ある程度理解した人は,自分で調べられるようになるので,本書のような書籍の需要があまりない。
  • 入門者層の方が厚みがあるから,出版事情的に見ておいしい。
  • 書けるだけの技術水準のある人が少ない。
  • C/C++ は落ち目(泣)。

本書の内容について見てみると,K&R が言語仕様に関する入門書だとすると,本書は実践的なプログラミングに重点を置いた本になっています。特徴的なのは,アセンブリの水準でスタックや再帰,ポインタの使用法を解説している点。C のコードがアセンブリとしてどのように実現されるのかを解説しているのはもちろん,どうすれば効率のいいコードを C で書けるのかも解説しています。こゆ本は本当に少ない。

このサイトでも,たまに C のコードがアセンブリでどのように実現されるのか,見てみることがあるけれども,こゆことは一昔前のプログラマは割と常識的にやっていたみたい。あたしの周りにいるベテランさんの時代は,コンパイラそのものにバグが多かったらしく,コンパイルしてから自前でアセンブリを書き直していたこともあったんだとか。まあ,それも今どき必要なスキルとしてどうなんだってなところもあるんですけど。

もうひとつ,本書でガッツリ説明されているのが,構造化プログラミングの方法論です。構造化プログラミングなんて,今ではコケの生えてるような概念だとは思うんですけれど,こうした発想が OOP のような概念に発展していくわけで,プログラミングのセンスに直結する話なんだと思います。C だけでなく,C++ にしても Java にしても,ひとつの関数(メソッド)やクラスであれもこれもやっちゃうようなコードは,「センスがない」とか言われることがあるけれど,こゆのは単純に方法論を知らないだけの話なので,練習すれば身に付くもんだと思っていたりします。少し大きめのプログラムを書くようになると,ソースファイルの構成方法や,クラスのまとめ方みたいなところに神経を使わなくちゃいけなくなるわけで,どんな言語を使うにしても,こゆ話を踏まえておく必要はあるんだと思います。

もっとも,本書では,ちと時代がかってるところもあるので,いきなり読むのはちときついかもしれません。例えば,「gets() を使うべき」とかいった話を真に受けちゃいけない。年月のせいで読みにくくなっているところもあるわけで,時代に合った書籍が必要だとも思うんですけれど,今のところこゆ本は刊行されていない。残念な限りです。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN