増15補足.実行可能って
●今回の発端
前回、『増15.逆問題の良さ』で、上流工程を「実行可能でない」、下流工程を「実行可能」と位置付けました。そして「実行可能でない」分だけ上流工程が俊敏であるとしました。どうもこの話は、「自転車とプログラミングと」というコラム全体に関わる問題のように思えてきました。それについて、少々説明します。
なお、今回はこのコラムの以前の文書を多く参照しますので、
- “文参照〔回の番号〕”
でそれを表すこととします(例:“「有用性の高いコメント」とは〔増15〕”)。
●確率関係と因果関係
“「お客さんの話は確率関係に近く、それを因果関係に変換することにより、電算機システムとして実装可能になる」〔増10〕”としましたが、「実行可能でない」は「確率関係」に、「実行可能」は「因果関係」にそれぞれ相当すると思います。
そして、“専門家でない限り「聞かないと分からない」というのもあります。プログラミングの文脈に応じた圧縮があまりに高効率である〔3〕”と書きました。それは「確率関係」より「因果関係」の方がどうしても微に入り細に入る関係上、後者は、見やすさを(悪い言い方ですが)ある程度ないがしろにしているためだと思います。
そしてその圧縮方法として、「実行可能でない」が「“文脈自由〔増13補足〕”」のに対し、「実行可能」は「文脈依存」であり、そのことにより圧縮を実現している、その代わり後者はその分、逐次読み進めていかないとわけが分からず、“結果(プログラム)が「一目見て分かる」ように直感的でない〔2〕”ようになってしまっていると思います。
もちろん、見やすい方を扱う方(一目見て分かる方)が俊敏だと思います。
●文脈自由と文脈依存
このコラムのそもそもの発端である、“「自転車などに乗っているときの『見方』の違い」〔1〕”とプログラミングの類似ですが、
- クロスバイクのような早い自転車は歩行者にない「車線」という概念を利用して情報を圧縮していることで速く走る
- プログラミングは設計段階にない「文脈依存」という概念を利用して情報を圧縮し「実行可能」としている
と定式化できると思います。
クロスバイクは速いですが、「曲がれない、止まれない、縁石を乗り越えられない」といった感じで、とても俊敏かというと違うと思います。「実行可能」というのもそれと似たようなものではないでしょうか?
●他に
文系の方で歴史的にある概念の、「パロール」と「ラング」というのももしかすると、「実行可能でない」と「実行可能」と対応付くかも知れません。この件は知ったかですが、もしこれが成り立つとすると、プログラミングについて昔からある議論を援用できる可能性も出ます(本当に知ったかですが……)。
まぁ、今回はこんなところです。
●コラムのコメント欄の方針
コメントに対し、当意即妙の回答を、それなりのタイミングでする自信がありません。
ですので、このコラムで、
- わたしは基本的にコメントに答えない
- コメントを書く人は、回答がない前提で議論を進めていただく
とさせていただきます。