SSブログ

Unix的プログラミングとカーニハン先生(1) [プログラム]

 C言語やUnixを勉強した少し上の世代の人たちに、絶対的な信頼を抱かせる名前と言えば、このカーニハン先生を措いてはいないだろう。彼の書く本は、単に技術の伝達ではなく、当時使われいなかったPDP-11というあり合わせのコンピュータの上でUnixを作っていった人たちが抱いていたUnixの精神を、かんで含めるように丁寧に説明してくれているからだ。

 コンピュータの本で、興奮したり感動したりする、と言ったら、若い人はどう思うだろうか。日本人にはこのような本は決して書けない。いや、アメリカ人だって、ほとんど無理だ。まだ手作りの時代からの創業者が、その会社の草創期の熱気ある時期の精神を伝えようと書いているのだから、そういう幸運な時代はもはや決して来ないのではないかと思う。

 具体的に本を挙げて説明していこう。一番古い『プログラム書法』という本は、まだC言語もできる前のFortranの時代のもので、今でも手に入るものの、さすがに古すぎるので、これは省くとすると、次に来るのは、

1.

『ソフトウェア作法』(カーニハン、プローガー共著、木村泉訳)共立出版社、1981年(原題: Software Tools, 1976.

 この本も、実はプログラミング言語としてFortranを使っている。しかし、既にUnix上でCが動いており、この本の中でFortranをC言語風の書き方でプログラミングできるようにするトランスレータを作り、そのC言語風Fortranを使ってプログラムが書かれているのである。従って、Fortranの知識はなくても、C言語を知っていれば、多少の違和感はあるものの、プログラム自体を理解することは難しくない。

 この本は大部な本で、その中でUnixの基本的なコマンド、特にテキスト処理に関する各種コマンドを、実際にプログラミングしてみせている。それを、出来上がったものを解説するのではなく、非常に簡単なものから順番に、どのようにプログラミングしていったら、Unixで使われているような頑丈なコマンドを作ることができるかを実地に、その作り方を実演してみせているのである。あるいは、それを読者に一緒に作らせている。各節には練習問題があり、発展的な機能拡張の問題が挙げられている。

 入力をそのまま出力するcopyといった単純なコマンドから始まり、C言語風Fortranを純正Fortranに変換するプログラムに至るまで、一つ一つコマンドを作って見せている。しかも、それはプログラミングを解説しているだけではない。

 たとえば、単純に入力された文字をそのまま書き出す、というcopyというコマンドが「なぜ役に立つのか」、という問いを立て、それこそがUnixのプログラミングのスタイルなのだ、ということを1ページほどに渉って説明している。それを読むと、この余りにも単純で、単にオウム返ししているだけのプログラムが、どれほど役に立ち、Unixの基本理念を実現しているか、ということが手に取るように分かるのである。

 このやや古めかしいC言語風Fortranで書かれたプログラム群を、C言語で全部書き直しながら、この本を読むのもおもしろいだろう。実は、同じカーニハンが、C言語の設計者リッチーとともに書いた『プログラミング言語C』の中には、本書でFortranで書かれたプログラムのいくつかがC言語の例として取り上げられている。ただ、『プログラミング言語C』はC言語の教科書なので、必ずしもプログラム例は多くない。やはり、この『ソフトウェア作法』をきちんと読んだ方が、プログラミングの基本を身に付けるにはいいだろう。

(以下、他の本については、また明日続きを書きます。)


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。