プログラム書法 |
|
売れ筋ランキング > プログラム書法
第一版のまえがきに「よいプログラミングのしかたは、一般論を述べたてることによって伝えられるようなものではない」と書かれている。 そのことを肝に銘じて、全体を読んでみると、いろいろな知見が得られた。 どんな関数型プログラミング言語も、機械語になれば、機械語のジャンプ命令(GOTO命令)に置き換わるのであるため、ここで指摘しているプログラムの例を、実際にコンパイラでアセンブラに変換して、その意味を理解するようにするとよい。 アセンブラ出力を比較できるようになると、コンパイラスイッチによる動作の違い、処理結果の違いを理解できるようになるだろう。 例題は、FortranまたはPL/1で書かれているため、これらの言語を知らない人には馴染みが薄い部分があるかもしれない。 しかし、FortranとBASICは数値計算においては姉妹のようだし、FortranとCとは関数定義する言語としては兄弟のようなので、BASICまたはCが理解できる人なら、難なく理解できると思う。 プログラムの基本は、ずっと同じであり、FortranもC言語も関数を定義できる言語としては同じように理解してもよいのではないだろうか。 プログラムが大規模になるに連れて、それまでは個人の職人技で書かれていたプログラムを何とか系統的な手法で開発できないかという試みがなされた。それが、本書でも述べられているHoare, Knuth等が提唱した「構造化プログラミング」の手法である。 例として使われる言語はPL/I, COBOLと時代を反映して古いが、考え方は現在でも通用する。逆に構造化プログラミング機能を持たないこのような言語で「構造化プログラミング」の概念を説明する事によって、C, C++, Javaのような言語が何故生まれて来たかを知る事になって、意義があるとも言える。 なお、本書の訳者は東工大の木村教授(当時)だが、本書で用いた「書法」という題名を、「プログラミング言語 C」(著者 Kernighan&Richie)を訳した石田晴久氏が副題で用いているのは因縁めいていて面白い。 パソコンの普及と共に、興味があれば誰でも本格的にプログラミングを行えるようになった。 そのような中から優れたプログラマも数多く出てきたのだが、職業としてプログラムを行う人でさえ、救いようのないプログラムを書く者が沢山いるのも事実である。 優れたプログラマが、そんな「ひどい」プログラムを見ると、強い不快感や嫌悪感など非常に嫌な気分に襲われる。そこで、それを書いたプログラマを注意すると、「何がいけないのですか?ちゃんと期待通りの処理をしますよ」と言われたりする。その「何がいけない」を実例で検証しながら、極めて明快に解説してくれるのが本書である。 例外処理はどこに置くか?マルチif分はどんな条件を先に吟味するか?など、なんでもなく思えるものにも、合理的なものとそうでないものでは雲泥の差があり、プログラマが予想もしなかったトラブルに発展するのを妨げてくれる法則がある。 本書では古い言語を使っているが、それらの言語を知らなくても、読むのに支障はない。そして、実際に使っているのが、アセンブリ語だろうが最新のオブジェクト指向言語であろうが、基本は全く変わらない。 賢いプログラムを書けるようになることで、思考能力そのものも論理性を持つようになり、設計においてさえ、良い影響をもたらすに違いない。 一度は熱心に読んで欲しい歴史的なテキストである。 英語でのWRITINGの本で「The Elements of Style 」という古典的名著 があるが、原題を見ても判るように、この本はそのプログラミング版。 言わずもがなのことながら、例は古いがこの本はFortlanやPL/Iを学ぶ ための本ではなく、適切なプログラミングスタイルを学ぶのが主眼なの で気にするほどのことでもない。それに、C++やJAVAと違い、そんなに 難しい言語ではないので、知らない人でも何が書かれてるか大体のこと はわかると思う。それに、ここに書かれている内容は特定言語に特化し たスタイルではなく汎用的・普遍的な内容なので、どんな言語にも応用 可能である。実際この本にインスパイアされたプログラム書法本は数知 れずある。 プログラミングのアンチパターン集として、古典的名著です。 対象となっているプログラミング言語はFORTRAN, COBOL, PL/Iと古いのですが、その内容は現在でも充分に通用するものです。 ぜひ一度、目を通されてはいかがでしょうか? プログラム書法を楽天で検索 |