OL
ご近所のOLさんは、
先端に腰掛けていた。

vol.8
- Welcome to KLIC World No.2 -

来たー!
アナドレンコフ博士からの klic 便りが。

まず、この記事を読む前に vol.5 (Welcome to KLIC World No.1)
を読むことをお勧めします。

でも、時間のない方には、ここでザザザーっと復習を。

並列論理型言語の KL1 とその処理系の KLIC
「先端」前身の大型プロジェクトで開発されました。

第1回目は、
そもそも並列処理ってなーに、なぜ必要なの?
ということをさらさらと説明。

ざっくり言えば
並列処理プログラミング言語というのは
「こんな状態にするよ!」
と宣言してしまう言語です。
それは従来の
「こうして、ああして、そうなって」と
逐一、順を追ってコンピュータに命令を出すのではなくて
全部いっしょくたの状態。

例えば、サラリーマンが朝寝坊して
「あ、いっけねー。」って
くつした、シャツ、上着、ズボンを同時に
着ながら、さらにトーストくわえて
駅まで走る様子と思ってくれた方がいい。

アナドレンコフ博士は
こんな風に表現してくれました。

それから
沢山のコンピュータで同時に処理をするので
複雑な命令を速く行なうのに適している
という言語です。

klicの話は、じゃ次の回ね、というところで
第1回目が終りました。
全体的にはなかなかハードボイルドな話です。

ではまたklicの深海へ。
--と思ったのですが、話が長くなるので
タンクが1本じゃ足りないみたい。
2、3本に分けて潜ることにしましょう。

そんじゃ。
ぷしゅぅ(タンクの空気音)、ぶくぶくぶくぶく。

さてコンピュータの世界にも
「スピード競争」があるんだ。
いかにコンピュータで速く計算をするか
ということに日夜命を削っている。

でも、スピード競争と言ってもいろいろな種類がある。
例えば、車のスピード競争を考えてみて下さい。
使う車がゴーカートだったり F1 だったりするし、
レースの形態がインディ 500 だったり
パリ・ダカールだったりする。

コンピュータのスピード競争も同じ。
使うコンピュータが、
皆さんのお宅にあるパソコン、
会社にあるワークステーション、
見たこともないけどとっても速いらしい
スーパーコンピュータであるとか。

どんな計算をさせるかということでも、
原爆が爆発する瞬間をシュミレーションしたり、
5 時間後の東京都の天気を予測したり、
歩行ロボットの各関節をコントロールしたり、
はたまた株の値動きや当たり馬券を予測したり。

えーと、何の話だっけ?

KLIC 処理系の話だけど・・・。

そうそう、処理系。
KLIC のような、
あるプログラミング言語を実行するソフトウェアを
言語処理系と言うのですが、
パソコンやワークステーション上の
言語処理系のスピード競争も、
これまた昔から盛んです。

最近では、例えば Java の高速な言語処理系作りなんて、
世界中の企業や大学が取り組んでいます。
スピード競争って言うのは、結果が数字で出てきて
勝ち負けがはっきりしているので、
これはもう完全に勝負の世界です。
勝負にこだわる男の世界です。
(実際、僕の知っている範囲では男の研究者しか居ない)

そんな訳ですから、
KL1 というプログラミング言語が
誕生した時 (1980 年代後半) から
KL1 の言語処理系のスピード競争は始まりました。
そして速くするためのいろいろな工夫が
積み重ねられてきました。

その工夫の中には、革新的なアイデアもあれば、
せこーいアイデアもありました。
あはは、せこいのか。

で、革新的なアイデアの一つは KL1 を
C にコンパイルすることだった。

多くの人は C、Fortran、Java くらいの名前は
聞いたことがあると思います。
って、前回も同じこと言ったかな?

うん、言ったような…。

ま、いいや。
Java というプログラミング言語は、
ああ計算してこう計算してという手順を、
料理のレシピのように実行すべき順番に従って
書いていく言語。

それに対して、
KL1 というプログラミング言語は、
こういう状態、ああいう状態というのが、
必ずしも実行すべき順序の通りには
並んでいない。

ここで、KL1 の「非決定性」という概念を説明して、
それを「決定的」な C に変換するのは難しいって
説明しないといけない。うーむ、とりあえず省略。

はーい。省略でーーす。

だから、KL1 というプログラミング言語が誕生した当時、
KL1 を C に変換して実行するなんて誰も夢にも思わなかった。
だから近山さん(KLIC協会理事長さん=チクタク博士)
KL1 を C に変換するプログラムを書いた時には
皆びっくりしたもんさー、そりゃぁ。

(実は、もっと正確に言うと、
当時 Prolog を C に変換して実行するプログラムは
すでにあった。だから KL1 みたいな
並行論理型言語も C に変換できるだろうね、
という空気はあった。
でも、誰もやっていなかった。)

C に変換すると何が嬉しいのか。大きく二つある。
一つはポータビリティ 。
(どんなコンピュータの上でも実行できるという意味)。
もう一つはスピード。

C という言語は、1980 年頃から
UNIX とともに世界中で使われている。
だから企業からアマチュアまで、
プログラマの数も桁違いに多い。
だから言語処理系も一杯ある。
だから競争に勝ち残った言語処理系が今我々の目の前にある。
だから安くて速くて、殆どの計算機の上で動作する。

なんか話が飛ぶけど、
マーシャ・ゴキンジョノフ、適当につなぎ直してね。

なに、その名前?
私?
ま、いいや。
このまま続行します。
そろそろ、KL1 という言語の話に移って下さいよ。

わかった。
じゃ、次はいよいよKL1のことをちょっと話そうね。

つづく。

余計なコトですが、近山さんのホームページ上層部の
情報工学科のページには「トキキザミさん」の家族らしき
ロボットが並んでます。どうも5人家族のようで…。
ちょっと行ってみて下さい。


- 今日のマリーゴールド -
マリーゴールド
6人姉妹で、順調に育ってまーす。
では。


福嶋(まーしゃ)真砂代

1999-04-02-FRI

BACK
戻る