東横線日吉駅慶応大学側の出口(東側)を出て,東横線に沿って左(渋谷方向) へ行く. 仲の谷という交差点(仏具屋が目印)を右に(中華料理屋と民家の間の 道)曲がり,2〜3分で理工学部の表札が見えるので,そこの左手の坂を登る. 教室は25棟(ピロティの右の建物)の6階.
マルチプロセッサや分散システムを用いた並行・分散処理環境でのプログ ラミングが注目を集めている。一方、オブジェクト指向プログラミングは生産 性、保守性、信頼性が高めることが出来るため、プログラミングパラダイムと してこれからの中心的役割を果たしていくだろう。オブジェクト指向プログラ ミング言語は内在的に並行性を持っているが、並行処理環境を考慮して設計さ れた言語(並行オブジェクト指向言語)はそれほど多くない。
ConcurrentSmalltalk(以下、CST)は、オブジェクト指向言語の中でも最も 完成度が高い言語と言われている Smalltalk-80 に並行プログラミングの機能 を加えたものである。ところが、CSTは Smalltalk-80の仮想機械を変更して実 装しているため、実行速度、移植性に問題点があった。Portable ConcurrentSmalltalk(PCST) はこのような問題点を解決するため Smalltalk-80 の Virtural Image 上で設計、実装を行なう。今回の発表では、 CST など代表的な並行オブジェクト指向言語について説明した後、CST の改良 バージョンである PCST の設計と実装について述べ、シンプルな並行プログラ ムのデモを行なう。
食事:今回はありません.
113 文京区本郷 7-3-1 東京大学工学部計数工学科 岩崎英哉 03-812-2111 ext. 7411 iwasaki@wadalab.t.u-tokyo.ac.jp
慶應大学では、並行オブジェクト指向プログラミングシステムの研究が行 なわれてきている。オブジェクト指向プログラミングは、オブジェクトによる データの抽象化とクラス階層による継承機構により、モジュール性、再利用性 に優れている。並行オブジェクト指向プログラミングモデルは、これ以外にオ ブジェクトが潜在的に持つ特徴である独立性、並行性に着目し、オブジェクト を並行に動作させ必要に応じてメッセージのやりとりを行なって全体として計 算を完成させていくという計算モデルである。このモデルにより人間社会で行 なわれている振舞いをシミュレートすることも可能である。並行プログラミン グ言語システムとしては、Smalltalk-80 に並行実行機能を加えた ConcurrentSmalltalk や知識処理機能を加えた Orient84/K などがある。
ConcurrentSmalltalk は独自の Virtual Machine を用いて実現されている ために、移植性が低い、Smalltalk-80 のバージョンアップに対応していない (処理速度、Virtural Image の内容)、拡張性が低い、といった欠点を持って いる。
Portable ConcurrentSmalltalk(以下 PCST)は、これらの問題点を解決する ために Smalltalk-80 の Virtual Image 上で実装を行なっている。PCST は、 ConcurrentSmalltalk の Virtual Machine を Smalltalk-80 上でエミュレー トしたものと言い替えることも出来る。PCST の実装に関して考慮した点をい くつか挙げる。
実行速度について評価を行なった。並行構文のエミュレートにはオーバー ヘッドがかかるが、高速な Smalltalk-80 の Virtual Machine 上では(Parc Place Smalltalk VI Ver.2.3)、適当な数の並行構文を持ったプログラム(全メッ セージの 1/4 が非同期通信)の実行では、2倍程度の実行速度になった。
終わりに:Parc Place Smalltalk-80 VI Ver.2.5 になって、コンパイラやバイトコー ドの大幅な変更が行なわれた。Xerox は Virtual Machine の仕様を以前のよ うには公開しない方針に転じてきたようである。このため、本実装の方法で移 植をするのは困難である。バイトコードのエラールーチンも公開されなくなっ たので、並行実行をエミュレートする部分をエラールーチンで行なうのではな く、コンパイラのレベルで既存のバイトコードに展開するといった方法を取ら ざるを得ないだろう。
PCST は、Parc Place Smalltalk-80 VI Ver.2.3 上で稼働している。この Smalltalk-80 が実行可能な全ての計算機で動作可能である。