毎年、10月は忙しい感じで、本年もやはりそうでした。来週もそうなります。内容がきつくなる訳では無く、時間が取られるだけです。しかし疲れることは疲れて、本日土曜日は休みをもらっているので、最低限の家事をしただけでゆっくりくつろいでしまいました。
私の当面の計画で計算器間連では、PROLOG処理系の理解を深めるのがあります。この界隈ではウォレン・アブストラクト・マシン(WAM)と呼ばれる仮想マシンがあって、コンパイラはソースプログラムをこのマシンのアセンブラ、いわゆる「中間言語」に翻訳し、実行時にはこの中間言語を逐次実行するインタプリタが動作します。これの精査です。
PROLOGの前に、おそらく試作段階の論理型言語があり、その動作を知っておきたいのですが非効率だった、という噂以外は見たことがありません。私の今の(妄想に近い)想像ではパターンマッチが完成するまで、いわゆる横型探索をするので組み合わせ爆発が起こりうる場合はたしかにいつまで経っても解に到達できない感じがします。PROLOGはこの点を改良し、論理型言語を実用化したとされています。
本当はその一つ先の、第五世代コンピュータの後期に採用されたGHC(ガーデッド・ホーン・クロージャ)の方が知りたいのですが、これがまた資料が無く、おそらくインタプリタ上のマルチタスクで、PROLOGの効率の鍵であるカット述語の代わりの「ガード」というのは、私の想像では単なるマルチタスクの排他セマフォです。
開発の委託先からC言語で開発するのとどこが違うのか、とか言われていたそうですから、おそらくそう。これも私の想像ですが、どこが嬉しいかというと、すべて一階述語論理の範囲に入る構文なので、計算機言語学的にすっきりしていて効率が良く、かつ、OSの機能がすべて実現できる、ということ。結構大切と思うのですが、そうはっきり書いた文章は見当たらず、計画は終了、私の数年後の資料集めは完成していません。
私のかすかな印象では世間的には、なんだか妙なことを言う人がわらわらと集まって、話が大仰になって迷走したあげく、途中で頓挫した、ということになっているようです。実態は本当に全く私は知りません。
そう、インタプリタ上のマルチタスク。かつて一世を風靡したパソコンのBASICの大元は、タイムシェアリングシステム(TSS)の典型の一つ、ダートマスBASIC、のはずです。そう、こちらもなかなか的確な資料が見つかりません。
当時の大型機ですから、性能は後のミニコン並み、パソコンで言うとIBM PC/AT、つまりインテル80286くらいだと思います。これに学生実習のために数十の端末をつないで、あたかも同時動作させます。仮想記憶システムなど遥か先の話。そう、工夫次第でこんな夢のようなことが実現できます。
TSS技術はすさまじいと言って良い強力なシステムなので、今の段階でこんなのが普及したらたまりません。おかげで業界のタブーの一つになってしまっています。もっともな理屈づけとしては、セキュリティーが甘くなってしまう、というのがあります。ここは確かにバーチャルメモリとかバーチャルマシンとかが有利でしょう、ものすごく複雑になりますが。
想像に想像を重ねると、だから第五世代コンピュータも外部圧力で…、ぶつぶつ。
おっと、またもや長文になったので、一旦切り上げます。