なんの変哲も無い書名だが私の人生に大きな影響を与えた本である。
最初に購入したのは大学生のころ。初めてのパソコンとしてPC9801互換機を購入して、TurboCで Hellow World やらタートルグラフィックスなどの練習問題をやっていた。ところが、大学生協で見かけたこの本は、Cインタプリタ、常駐プログラム、マルチタスクカーネル、テキストエディタ、データベースを作っていた。つまり、練習問題ではなく本物のプログラムの作り方が、ソースコード全掲載で書かれていたのだ。もちろん、今から思えば本物ではなく、教材レベルなのだが、当時は衝撃を受けた。オトナの世界を覗いた気分だ。金欠学生だが、悩みに悩んで購入して、写経して、元はIBM-PC用のプログラムをPC98に移植した。それから、プログラミングに興味を持ったのだ。
全部写経したあと、友人に勧めまくって、押し付けるように貸したら帰ってこなかった。
近頃、Amazon で古書を買い直したのだ。まさしく、大人買いだ。
もちろん、今は(PC98ではなく)IBM-PCを使っているがMS-DOSでは無い(Linux)ので、本書を写経するようなことはない。しかし、私の一部分を構成する書籍として、ぜひ手元に置いておきたかったのだ。
元は英語の本で、原題は『Born to code in C』。雰囲気がある。
なぜ、いまさら、この本を思い出したかというと、 自作エディタをつくる Advent Calendar 2016という記事を見たから。
Cの初心者と思われる筆者が、調べたり苦労しながら、コンソールテキストエディタを製作している。途中から、プルリクやらコメントでの指導が入って、チャレンジした本人としては、とてもよい経験、よい冒険ができている感じが素晴らしい。
emacs の構造について調べて、それがギャップバッファというデータ構造を使っていたり、内部がLispインタプリタでありキーを押したら (self-insert-command) が実行され、それが1970年代に考案されたアルゴリズムだと聞いて、秘術に触れたように感じたことも思い出される。
テキストエディタは、一度は作ってみるものなのだろう。
写経もするべし。