« 情報処理12月号の特集はオープンデータ活用:面白いことができそうだが思いつかない・・・ | トップページ | ちょっとがっかりなFPGAマガジン:買ってまで読む気になれない »

2013年11月20日 (水)

プログラム書法:なつかしい本だ

 前回情報処理2013年12月号の特集について感想を書いた。この号の後ろの方に、ビブリオ・トークというコーナーがあって、そこで取り上げられている本が、プログラム書法 第2版である。なんと30年経った今でも現役で大きな書店に行くと本棚に並んでいるということから紹介が始まる。この紹介文は、この本とこの本の主張に対する著者の愛情がこめられていて、いい紹介文だ。

 プログラム書法 第2版の出だしに出てくるプログラムがおもしろい(これってFORTRANだ。ああ、なつかしい。)。

     DO 14 I=1,N
     DO 14 J=1,N
14 V(I,J)=(I/J)*(J/I)

  このプログラムは、Vという2次元配列を、単位行列として初期化するプログラムだという。FORTRANなんて今や絶滅危惧種なので、少し解説してみる。
 IとJが等しいときは、(I/J)*(J/I)は1になる。
 I<Jの時は、IもJも整数型なので、I/Jも整数の割り算になるので0になる。だから(I/J)*(J/I)は0だ。
 I>Jの時は、J/Iが0になるので、この場合も(I/J)*(J/I)は0だ。
 かくして、IとJが等しいとことにだけ1が代入され、それ以外は0が代入される。これは単位行列そのものである。
 なんというトリッキーなコードだろう。プログラム書法 第2版では、こんなプログラムはだめで、もっとわかりやすいプログラムを書こうということで、進んでいく。
 私も、この名著を和訳が出たのとほぼ同じ時期に買って読んだはずである。この著者のうまさに惹かれて、かなり影響を受けたことは確かだ。わかりやすいプログラムを書くべきだということは、今でもそう思っている。
 そう思う一方、この本の例にあるような、トリッキーなコードにも大好きだったりする。

 いまさら、プログラム書法 第2版を再読しようとは思わないが、このビブリオ・トークで紹介されていたリーダブルコードという本は、時間があれば読んでみようかなと思っている。

« 情報処理12月号の特集はオープンデータ活用:面白いことができそうだが思いつかない・・・ | トップページ | ちょっとがっかりなFPGAマガジン:買ってまで読む気になれない »

書籍・雑誌」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/568535/58613016

この記事へのトラックバック一覧です: プログラム書法:なつかしい本だ:

« 情報処理12月号の特集はオープンデータ活用:面白いことができそうだが思いつかない・・・ | トップページ | ちょっとがっかりなFPGAマガジン:買ってまで読む気になれない »

2017年8月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

公告

  • Google Adsense
無料ブログはココログ