参考文献の「Mesa」について by Yoshiki Shibata

[ 戻る ]


Mesaは、米国Xerox社が開発した言語で、正確には、Xerox PARCが開発した言語
です。私がMesaを用いた開発に従事したのは、1988年の後半から、2001年の春ま
でです。手元に言語仕様がないので、詳細は忘れてしまいましたが、次のような
特徴がありました。

・インタフェース(API)とその実装を明確に分離する
・マルチスレッドプログラミングを言語としてサポートしている。C.A.R.Hoare
が提唱したモニターを最初に実装した言語とも言われていると聞いたことがあり
ます。Java言語でいえば、メソッドをsynchronized宣言できるように、メソッド
呼び出しでモニターロックを獲得されるようなメカニズムがありました。
・例外をサポートしていた。さらに、例外をキャッチした後に、例外処理を行っ
て、例外の発生元に制御を戻すこともできた。たとえば、OutOfMemoryがスロー
されると誰かがキャッチして、メモリーを解放して、例外の発生もとに制御を戻
して、あたかもメモリー不足がなかったかのように処理を続けるなどができた。

Mesaは、単なる開発言語だけにとどまらず、Mesaにより書かれた開発環境として
XDE(Xerox Development Environment)があり、その上にすべてのGUIペースの開
発ツールが統合されていました。基本的にOSからウィンドウシステム、アプリ
ケーションと、ほとんどすべてがMesaにより書かれていました。

また、インタフェース(API)を実装したモジュールをネットワーク環境を通し
て、Xeroxグループ社内の地理的に分散しているサーバーから自動的にフェッチ
(取り出す)したり、他のマシンからデバッグするためのリモートデバッグ機能
も装備していました。

XDEは開発環境ですが、製品として、統合オフィス環境であるStarが開発されて
います。まだ、研究用のCedarと呼ばれるシステムもXDEとは全く別に開発されて
います。

Mesaは、バイトコードに変換され、そのバイトコードを直接実行するXerox社独
自のハードウェアで動作していました。その後、1988年に独自ハードウェア開発
を断念して、Sunワークステーションへ、すべてのソフトウェアを移植するプロ
ジェクトが米国Xerox社と富士ゼロックス社で共同で始まりました。日米合わせ
て200名以上のエンジニアが、その移植のためのプロジェクトに従事して、Star
がSunワークステーションへ移植され、GlobalViewと名前を変えて発売されてい
ます。

このプロジェクトのために、私は、生まれて初めて日本を出て、米国のロサン
ジェルスで2年半近い駐在生活を送ることになった訳です。当時29歳でした。こ
の時、同じグループで一緒に仕事をしたのが、参考文献のMesaのところに著者の
一人として名前が挙がっているWilliam Mayburyでした。

この移植では、Mimosaと呼ばれるMesaコンパイラーが開発されて、MesaからC言
語へ翻訳していました。マルチスレッドや多くのファイルを取り扱うための独自
のシステムがSunOS上に構築されていました。ただし、この方式の移植には膨大
な工数を必要とするために、既存のXerox社独自のハードウェアで動作していた
膨大な資産を移植することは行われませんでした。

この移植作業と並行して、数名の優秀なエンジニアにより行われていたのが、バ
イトコードエミュレータの開発です。Xerox社固有のハードウェア上で直接実行
されるバイトコードをソフトウェアで実行するためのエミュレータ開発です。

このエミュレータは完成し、インテルCPUの高速化の恩恵もあり、Windows上で動
作するStarとして、GlobalWinが製品化されて、Windows上でStarのソフトウェア
が動作するようになりました。当然、XDEも動作するようになりました。

残念ながら、Xerox社は、最終的にはワークステーション事業から撤退し、今で
は、StarもGlobalViewも、GlobalWinも市場から無くなってしまいました。

ちなみに、溝の口のKSP(神奈川サイエンスパーク)のB棟4Fにある富士ゼロックス
社の会議室コーナーには、富士ゼロックスが商品化したStarワークステーション
と、Xerox PARCで開発されたあの「Altoワークステーション」が展示されています。

柴田


[ 戻る ]