ハードウェアの進歩とソフトウェアの進歩


今から10年ちょっと前だったろうか、当時の勤務先(新世代コンピュータ技術開発機構)へ放送局からの取材があった。「皆さんが抱く第五世代コンピュータのイメージを絵に描いてほしいのですが」と言われ、若い研究員数名に画用紙が渡されたが、これはなかなか難しい課題であった。いくら未来のコンピュータに対する夢があっても、「夢のソフトウェア」をうまく表現できるほどの絵心はない。エイヤッと発想を転換し、即物的にいくことにした。A3版ほどの画用紙を縦長に置いて、まずは上半分に液晶ディスプレイの絵を、下半分にキーボードの絵を描いた。次に画用紙を上下2つ折りにして、今度は裏面に外装を描いた。

そのようにして描きあがった、というかできあがった「超薄型A4ノートパソコン」が、当時の私の「夢のハードウェア」のモックアップであったわけだが、夢が小さすぎたのではなくて技術の進歩が素晴らしかったのだろう、ほとんど同じものが簡単に手に入るようになってしまった。厚さも、「もうこれ以上薄くならなくていいよ、壊れるのが心配だから」というところまで来た。この原稿も、むろんノートパソコン上で書いている。別のウィンドウではKL1プログラムのコーディングをしている。

書いているのは並行論理プログラムの解析システムであるが、この仕事は、二つの、より大きな目標の実現のために行なっている。一つは、プログラムの誤りを自動的に同定して修正してしまおうという、自動デバッグの試みである。「プログラムの仕様記述も与えずになぜ自動デバッグができるのか」と思われるかもしれないが、バグのいるプログラムでも「ほとんどの部分は正しい」のが普通である。ならば、「正しそうな」部分から抽出できる仕様を、誤った部分のデバッグに使おうではないかというのが基本的な考えである。実際、軽微なバグならば本当に修復できることがわかってきた。

もう一つは、並列分散処理を早く「当り前の」技術にしたいという願望である。日本の並列処理関係者が一堂に会する「並列処理シンポジウム」では、毎年「並列ソフトウェアコンテスト」を開催しているが、考えてみると、並列ソフトウェアの作成が大学会のコンテスト課題になり、超一流大学の大学院生が悪戦苦闘しているということ自身が、並列プログラミング技術の問題点を如実かつ深刻に物語っている。特定の応用分野やアルゴリズムに特化することなく、プログラムの論理的な性質のみならず物理的な(つまり計算資源やその使い方に関する)性質も容易に解析できるようにしたい。それができれば、並列分散処理のためのプログラミングと処理系の双方が大幅に簡明になると期待している。

10年前に夢見たことと現在とを見比べると、ソフトウェアやソフトウェア技術を育てるには、ハードウェアとは桁違いに息の長い研究が必要なようだ。「情報技術の進歩は急速である」という主張も「陳腐化が激しい」という主張も、この世界の半分にしかあてはまらない。

(上田 和紀 早稲田大学理工学部)


bit別冊「はじめての並列プログラミング」、共立出版、1998年5月、p.100 から許可を得て転載