ふたつ目の話は、コンパイラは道具ではないということ(4)

先日の携帯用上位言語の開発という課題にしても、結局は、この<変換>をいかに効率的に行なうかという答えのひとつに過ぎない。

http://d.hatena.ne.jp/yaneurao/20040524
http://d.hatena.ne.jp/yaneurao/20040525


人は、ひとたび「コンパイラは道具だから」というように、道具だと考えてしまうと、「いかにして使うか」ばかりを考え、「いかにして作るか」を忘れてしまう。コンパイラは、本来、必要に応じて自分で作るものだ。なぜなら、自分が望む<変換>に必ずしもCコンパイラが適切であるわけではないからだ。(CからJavaへの移植を考えてみてもそうだ。この変換をやってくれるトランスレータが必要だ。)


コンパイラをどうやって使おうとしか考えていない人に、コンパイラをどうやって作ろうだとか、どういうコンパイラを作れば自分の仕事が楽になるのか、ということについては想像が及ばない。だから―――何度でも言うぞ!コンパイラは断じて道具ではないのだ!それが自分の望む変換でないならば、いつでも自分で作る覚悟がなくてはならない。


もちろん、数学にしてもそうだと思う。工学者だから数学は道具として扱おうというのは現実解としてはそうだとしても、心構えとしてはやはり間違っていると思う。ひとたび道具が自分にとって十分ではないと判断したならば、道具自体を作るだけの覚悟がなくてはならない。何もいますぐ一から数学を構築しろだとか、数学の未知の学問領域を開拓しろだとか無茶な要求をしているわけではなく、「自分は使う側の人間だから」とそこに安住するのではなくいつでもそれを行なえるだけの心の準備をしておくべきだろうという“心構え”レベルの話なのだが。もちろん、自分が発見した!と思った公式や定理が既にどこかの誰かさんの定理だったとしてもそれはそれで全然構わないと思う。(つづく)