Unix的プログラミングとカーニハン先生(2) [プログラム]
昨日の続き。本当は一回で紹介しようと思ったのだが、ちょっと長くなったので、分割することに。
2.
『プログラミング言語C』(カーニハン、リッチー共著、石田晴久訳)共立出版、初版1981年、第二版1989年 (原題: Progamming Language C, 1st ed. 1978, 2nd ed. 1988)
これは、C言語の作成者リッチーとの共著で、初版はC言語の教科書であり仕様書でもあった。その後、C言語がANSI規格として策定されたに対応して、第2版が出版された。この時点では他にもたくさんのC言語の教科書が出てきて、以前に比べてこの本で勉強する人は少なくなってきたかもしれない。しかし、著者名の頭文字をとってK&Rという名称で呼ばれる本書は、未だにC言語のバイブル的存在と位置付けられる。
前回も書いたように、この本の例題や練習問題の題材は、単にC言語の個々の文法を説明するための単純なものではなく、むしろ、Unixのコマンドの基本的なものを作るようなものが多い。『ソフトウェアー作法』でFortranで書かれていたものをC言語で書き直した、という感じである。そのため、問題を解いていても、非常におもしろい。逆に言うと、説明よりも、この例題と問題を自分で作ってみなければ、この本の価値は半減する。
たとえば、関数の説明をする章では、簡易電卓を作る例題が取り上げられている。もちろん、全体をどのように分割し、それをどのように関数に分けるか、ということを説明しながら、徐々に作ってみせるのである。こういうところは、カーニハンの真骨頂である。
だから、練習問題を解いていても楽しい。楽しみながら勉強ができるし、結構高度なツールのプログラムを実際に体験できる、という意味でも良い本である。
3. 『Unixプログラミング環境』(カーニハン、パイク共著、石田晴久監訳)アスキー出版社、1985年(原著: Unix Programming Environment, 1984)
Unixは、アメリカの電話公社であったAT&Tのベル研究所で、ケン・トンプソンと、C言語の創始者デニス・リッチーとによって作られものであり、C言語自体がUnixを実装するための言語として開発された、という経緯を有する。
この本では、もう一方のUnixについての、ごく初期の総合的な教科書である。今となっては、そのUnixの使い方の部分は古く、他に良書があるので、この本でUnixを勉強する必要はないが、しかし、後半はシェルから始まり、C言語を使ったプログラミングの教則本になっており、この部分は、やはり非常におもしろい。
例によって、単純な文法の説明のための例題ではなく、たとえば、Unixに備え付けのカレンダ表示コマンドcalを、最初awkというツールで、次にはシェル・スクリプトでどのように使いやすくカスタマイズできるかを、やってみせる。
またC言語については、コンパイラ支援のUnixツールyacc、lex、そして、プログラミング一般の支援ツールmakeの使い方を説明しながら、例題としてBASICのサブセットのようなプログラミング言語hocを作ってみせる。しかも、最初は四則演算だけができるバージョン、変数が使えるバージョン、制御構造を組み込んだバージョンという具合に、徐々に拡張していく。これが、非常に勉強になる。
この本ではパイクという人と共著になっているが、この人とは、最新刊の『プログラミング作法』(似たタイトルの本だ)でも、一緒に書いている。カーニハン先生は、誰かと共同で執筆するのが好きらしい。
本当は、1977年に『プログラミング言語AWK』という本を、これも共著で書いている。AWKは有名なUnixのツールで、Perlが出来る前に、テキスト処理を簡単にプログラムするためのスクリプト言語として開発された。名前は、その言語の作者三人、Aho、Weinberger、Kernighanの頭文字に因んで付けられたものだ。この本も、おもしろかった記憶はあるが、今、手元にないので、後日に説明を追加しよう。
最新の『プログラミング作法』については、また明日。
コメント 0