Knuth先生にアルゴリズムを教えたよ
世間話の中で先生の執筆環境について聞いてみた。
M: 「文章書きとかどういう環境でやってるですか?」
K: 「大きなマシンも使ってるけど文章とかはLinuxノーパソでEmacsだね」
M: 「Emacsなんですか。仕様が変で困ったりしませんか?」
K: 「変な機能は使わないからね。自分で色々カスタマイズしてるし」
K: 「たとえば行に色をつけるElispを使ってる。参考文献リストとか書くときに、
大事なのとそうじゃないので色を変えるんだ」
K: 「CWEBを書くための仕組みも作ってる。まだ書いてないモジュールのリストは全部
木構造でダンプしてあって、後でそのリストから適当に選びながら実装していくんだ」
K: 「それからキーボードマクロなんかも活用してる。こうやって(??どうやって??)
ファンクションキーにいろんな機能を割り当てたりするんだ」
M: 「私はキーボードマクロの自動定義てのを使ってるんですョ」
K: 「自動?」
M: 「たとえばabcabcと入力してから「繰り返しキー」を叩くとabcが自動定義されるんです」
K: 「へー。どうやるの?」
M: 「入力履歴の中に繰り返し部分があったら自動定義しちゃうんですよ」
K: 「へー。でもbbaabbaaみたいなときはどうするの?」
M: 「一番長いのを登録します。この場合はbbaaですね。aじゃなくて。」
K: 「なるほど」
M: 「このソフト今度あげます〜」
予想通り現在もガンガンプログラムを書いているようだ。 もっぱらアルゴリズム等の検証用であって配付する性質のものはないらしいが。 CWEBは本当に使ってるようだ。 つまりCをメインに使っているらしい。 CWEBとChangeLogとMakefileとを駆使して各種環境用のソースを自動生成するみたいなことも言っていた。 こういうやり方はTeXの昔からそう変わってないようだ。
ちなみにエンドユーザプログラミングについても少し話を振ってみたのだが興味無さそうだった。 まぁそうだろうねぇ...
それにしてもとても感じの良い人だった。気さくな天才素晴らしい!