Brian W.Kernighan and P.J.Plauger 著 木村泉訳
(共立出版株式会社 ISBN 4-320-02085-5 C3041)
著者の一人は、CプログラマにはK&R(「プログラミング言語C」)
でおなじみのカーニハンで、昔から、同著者たちの「プログラム作法」と
合せて、名著として勧められている本です。
(訳本の第一版が1976年で第二版が1982年)
プログラムの書き方についての本です。
別段高度なことが書かれてるんじゃなく、段付け(インデント)しよう、
とか、紛らわしい名前をつけるのはやめよう、とかの、基本的なこと、
でも初心者のうちはあまり気にしないような、やりかた、とか、態度とか
いったことがらを、実例を示しながら、いろいろ書かれてます。
まえがきから抜粋すると、
「よいプログラミングのしかたは、一般論を述べ立てることによって 伝えられるようなものではない。プログラムのよい書き方を学ぶ道は、 現実のプログラムが、プログラム書法の諸原則に従い、かつ、 いささかの常識を働かせることによって改善されて行くさまを、 繰り返し繰り返し眺めることにある」ってことで、その通りの本です。
「本書では、各例題の欠点を論じ、書き換えて改善し、そのあと 特定の例から一般原則を導き出す」
「この本は、初級と上級を問わずプログラミング関係のあらゆる レベルの講義における副読本として、また経験を積んだプログラマ向けの 知識整理のための読み物として、利用できる」
ただ、書かれた時期の対象とした読者層の違いで使用言語が古い仕様 の FORTRAN と PL/I なのが、しかたないとはいえ現状を思うと 悔やまれる……Cなら人(後輩とか)に勧めれるのに(※)
「書法の原理は、いかなる言語にも、アセンブラ語についてさえ通用する」とも述べられてて確かにそういう本なんですが、 そうはいっても、かなりの部分、とくに 実例は (古い) FORTRAN 固有の問題に対する防御の話も多く(もっともそれは アセンブラプログラミングに通づるモノもあるのだけど)、 プログラム(言語)することが好きとかいうのでない相手、仕事として/ 目的を達成するための手段として、Cプログラミングをしている人たちに 勧めるには、ちとノイズが多すぎるなあ、と。 あ、上手い読み手ならば大丈夫かもしんないけど。
あと、普段使いなれない訳語が出て来たりしてちょっとだけ戸惑って しまうかもしれません。名札、とか、解説文章、とかは、今訳されたものなら、 ラベル、とか、コメント、とか書かれるんだろうな、と思うのですが。 "算譜"とかの独特の用語がでてくる本に比べれば面食らうことは ないけれども、それでも古めのプログラム本特有の雰囲気がちょっとは あるかもしれない。
第一版からすれば20年以上たってるわけで、その後にも良書は出てる でしょうし、これに代る本もあるかもしれないし、入門書とかでも作法に ついて触れられていることも多いと思うんで、あえてこれを読め、って いうほどでも無いような気もする……が、この手のことを、まとめて述べた 本はそうなさそうな気もするし、あったとしても、これに代えることが 出きるものかどうか……と、思うと、やはり、この本がいいのかな(※)。
ひょっとしたら「書法」「作法」を読んだことある、って言えばカッコがつくかも (って、誰に対してだか)。
※ 現在では、言語として C/C++/java を据えてアップトゥデイトされた 『プログラミング作法』 が出ているので、今読む/買うなら断然こっちでしょう。
とりあえず、巻末に、本文中に現れた規則を集めた規則集が巻末に
が載っていたので下記にそれをかってに引用。
実は、本文中に出てきた規則をまとめてやろうと、メモ打ち5つくらい
した後に巻末にすでにまとまってることに気づいて、悔しいからそれ見て
打ちこんだだけ……てか、単に手で読んだときの残骸とも
(しかし引用しすぎかなあ)。
多少、本文見ずに規則だけみると、なんのことだろう、とか、
別のことと勘違いしそうなことがあるような気もするけど。
一般論の部分だけ抜き出したって、どうしようもないって面もありますが、
まあ、興味をもったり、とか、すでに経験からこれだけでも役立つとか
いう人は、購入するのが吉ってことで。
この規則集は、本書で述べたことの要点を手早く概観するためのものである。 これらの規則を読むときは、それらが一つ以上の実例をともなって 示されたものであった、ということを銘記してほしい。 もし規則を見て実例を思い出せなかったら、関係する部分に戻って、 読みなおしてほしい。
参考書 The Elements of Style にある文句をもじっていうと、 プログラム書法の規則は、英作文の規則と同様、最良の作者によってさえ、 ときには破られることがあるものだ。 だが、規則がやぶられていたとしたら、プログラムの中にはその代償として、 何らかの利点が見出されるのが普通である。 たしかにこうしたほうがよいという確信がないかぎり、 規則を守っておくのがたぶん一番である。