学位論文要旨



No 213097
著者(漢字) 竹内,郁雄
著者(英字)
著者(カナ) タケウチ,イクオ
標題(和) パラダイム融合言語の研究
標題(洋)
報告番号 213097
報告番号 乙13097
学位授与日 1996.12.13
学位種別 論文博士
学位種類 博士(工学)
学位記番号 第13097号
研究科 工学系研究科
専攻 情報工学専攻
論文審査委員 主査: 東京大学 教授 武市,正人
 東京大学 教授 田中,英彦
 東京大学 教授 井上,博允
 東京大学 教授 近山,隆
 東京大学 助教授 寺田,実
内容要旨

 本研究の目的は,実時間で実世界を対象にする記号処理言語を設計・実装することである.実世界を対象とするためには,多様な方法論や手法が必要で,適材適所でパラダイムを使い分けること(パラダイムの複合)が必要である.パラダイムを複合するには,パラダイムの接合と,パラダイムの融合の二つの方法があるが,我々は複数のパラダイムを一つの言語の中に融合した新しいプログラミング言語TAOを設計するアプローチをとった.パラダイムの融合は,パラダイムの使い分けの自由度を高めると同時に,パラダイム複合の実行性能を上げ得る.

 TAOが融合したパラダイムは,Lispをベースとする手続き型(以下Lispと呼ぶ),Pro-logをベースとする論理型(以下Logicと呼ぶ),メッセージメタファーにもとづくオブジェクト指向,および実時間プログラミングである.TAOは新たに設計・開発した専用マシンSILENT上に実装中である.TAOはパラダイム間の記述能力と実行性能のバランスをとること,パラダイムの融合を深くすること,言語を大きくしないことを狙った.

 LispはTAOの基底パラダイムである.Lisp言語として新たに提案したのは,「未定義値」というデータ型,Lispの関数とLogicの述語を統合する「作用素」の概念,性能保証の容易な引数機構,「プログラム=データ」を生かしたevalの意味論,マルチプロセス環境での効率のよい変数共有,データ保護の機構,catch/throwの機能拡張などである.

 TAOはユニフィケーションを,Lispの代入と同じメカニズムにもとづいて実現し,両者の意味を相補的に拡張した.また,性能保証しやすいように,TAOはLogicを手続き的に機能分解した上で融合した.すなわち,節にもとづく計算を,ユニフィケーションと,後戻りの計算メカニズムに分解する.それぞれをさらに,受動的ユニフィケーションと能動的ユニフィヶーション,ガードによる浅い後戻りと失敗による深い後戻りに分解する.深い後戻りはLispのcatch/throwと概念的に並行した拡張を行ない,柔軟な後戻り制御ができるようにした.

 TAOのオブジェクト指向は,総称関数ではなくメッセージメタファーにもとづく.こうすることにより,メッセージ式は関数式と述語式の両方に対して自然な拡張となった.こうした上で,基本メカニズムとその上に構築されるプログラム抽象を切り分けた(メカニズムとポリシーの分離).TAOはメッセージメタファーにもとづく多様なオブジェクト指向言語の実装言語として利用可能である.TAOはプロセスやバッファなど高機能の基本データ型に自由なオブジェクト意味論を与えられるようにするため,随伴オブジェクトの概念を導入した.

 Lisp,Logic,オブジェクト指向の三つのパラダイムが調和のとれた形で融合されることをトリニティと呼ぶ.我々は,TAOにおけるトリニティを実証する言語仕様とプログラム例をいくつか示した.

 TAOのプロセスは,4段階の特権レベルで保護される.スケジューリングは64段階の優先度によって制御され,先取り可能である.簡単な優先度継承も行なう.TAOの並行プログラミングのプリミティブは,排他制御のためのセマフォとロッカー,通信のためのメールボックスとバッファからなる.これらは,実世界の多様な事象に対処できるような非標準的な機能を備えている.TAOはOSとしても機能する.

 時間,および実世界の非同期的現象に対応するための基礎が割り込みである.TAOは重要な割り込みに対する反応遅延時間を最大で100秒に抑えることを目標としている.TAOの割り込みは,構文構造に合致した整構造のイベント割り込みと,非同期・非整構造のプロセス間割り込みの2種類からなる.イベント割り込みの主要概念は,プロセスに代わってイベントの待ち行列に並ぶイベントボックスと,イベントボックスの待ちを制御するevent-alert構文である.これによって,プロセス個々に対するきめ細かい割り込み制御が可能になる.プロセス間割り込みは,TAOをOSのように使いたいときに有効である.

 SILENT上のTAOは,我々が以前開発したELIS上のDAOに比べ,記号処理が10〜20倍高速であり,各パラダイムの性能比はほぼ1になった.TAOのプロセスは軽量であり,最短寿命は17秒である.同じベンチマークでELISの500倍,最近のRISCマシン上の高速Lispに比べて10倍近い性能である.最大反応遅延100秒は達成される見込みである.

 我々のとった言語設計の方法論は,これからの記号処理,実時間プログラミング,プログラミング言語論,OSの機能設計に有益な知見と示唆を与えたと確信する.得られた実時間性能は,実時間知能処理の実現可能性を示している.

審査要旨

 実時間で実世界を対象にする記号処理言語を設計・実装することは計算機の工学的応用にとってきわめて重要な課題である。実世界を対象としたプログラミングには、多様な方法論や手法が必要であり、適材適所でパラダイムを使い分けること(パラダイムの複合)が求められる。パラダイムを複合するには、パラダイムの接合とパラダイムの融合という二つの方法が考えられるが、パラダイムの融合には、パラダイムの使い分けの自由度を高めると同時に、パラダイムを複合した際の実行効率を上げ得るという特徴がある。この点で、パラダイムの融合による複合がプログラミングにとって有効であると考えられる。

 本論文は、このような背景のもとで、複数のパラダイムを一つの言語の中に融合した新しいプログラミング言語TAOの設計と、その実装手法を述べたもので、「パラダイム融合言語の研究」と題し、8章よりなる。

 第0章「緒論」では、本研究の対象とする「パラダイム融合」のプログラミング言語の研究における位置付けを述べている。プログラミングパラダイムの複合には接合と融合という2種類の方法論があることを提示し、プログラミング言語の研究では、パラダイム融合を課題とすべきであると主張している。

 第1章「パラダイム融合言語TAO」では、本研究で設計した言語TAOの性格づけ、方向づけをまとめている。TAOが、手続き型、論理型、オブジェクト指向、および実時間プログラミングの各パラダイムを融合するものであることを述べるとともに、新たに設計・開発した専用マシンSILENT上に実装中であることに触れている。TAOが、このようなパラダイム間の記述能力と実装における実行性能のバランスをとること、パラダイムの融合を深くすること、言語を大きくしないことを狙って設計したものであるとしている。

 第2章「融合言語のベースとしてのLisp」では、TAOの基底パラダイムであるLispの機能拡張の提案を行なっている。新たに提案されたものは、「未定義値」というデータ型、Lispの関数と論理型言語の述語を統合する「作用素」の概念、性能保証の容易な引数機構、「プログラム=データ」を生かしたevalの意味論、マルチプロセス環境での効率のよい変数共有、データ保護の機構、catch/throwの機能拡張などである。

 第3章「論理型パラダイム」では、論理型パラダイムの基礎となるユニフィケーションがLispの代入と同じメカニズムに基づいて実現できることを示し、両者の意味を相補的に拡張している。また、実行性能を保証しやすいように、TAOでは論理型言語の機能を手続き的に分解した上で融合する方法を採用したことが述べられ、その理由を論じている。節にもとづく計算を、ユニフィケーションと、後戻りの計算メカニズムに分解し、それぞれをさらに受動的ユニフィケーションと能動的ユニフィケーション、ガードによる浅い後戻りと失敗による深い後戻りに分解している。これにより、柔軟な後戻り制御ができるようになっていることが例証されている。

 第4章「オブジェクト指向パラダイム」では、オブジェクト指向の概念を整理したうえで、TAOのオブジェクト指向の機能を論じている。TAOでは、その機能を総称関数ではなくメッセージメタファーに基づいて実現している。これによって、メッセージ式が関数式と述語式の両方に対して自然な拡張となっている。さらに、基本メカニズムとその上に構築されるプログラム抽象を切り分けており、TAOはメッセージメタファーに基づく多様なオブジェクト指向言語の実装言語として利用可能であると述べている。また、プロセスやバッファなど、高機能の基本データ型に自由なオブジェクト意味論を与えるための随伴オブジェクトの概念を導入している。

 第5章「トリニティ」では、手続き型、論理型、オブジェクト指向の三つのパラダイムが調和のとれた形で融合されることをトリニティと呼んで、TAOにおけるパラダイム融合を実証する言語仕様とプログラム例をいくつが示している。

 第6章「並行プログラミングと実時間プログラミング」では、実時間プログラミングの基礎となる並行プログラミングの基本機能と割り込み処理を扱っている。TAOの並行プログラミングの基本機能である排他制御のためのセマフォとロッカー、通信のためのメールボックスとバッファは、実世界の多様な事象に対処できる機能を備えていることが例示され、TAOはオペレーティングシステムとしても機能することが示されている。実時間性に関しては、実世界の非同期的現象に対応するための割り込みの処理に実現上の目標を設定して言語機能を設計したことが述べられている。TAOは重要な割り込みに対する反応遅延時間を最大で100秒に抑えることを目標とし、構文構造に合致した整構造のイベント割り込みと、非同期・非整構造のプロセス間割り込みの2種類の割り込みを扱っている。

 第7章「結論」では、SILENT上のTAOの実装において、各パラダイムの性能比はほぼ1になったことが述べられ、パラダイム融合の目的が達成されたと主張している。また、TAOのプロセスは軽量であり、最短寿命は17秒であるとの実験結果が示され、同じベンチマークで以前に開発したELISの500倍、最近のRISCマシン上の高速Lispに比べて10倍近い性能であり、最大反応遅延100秒という実時間性も達成される見込みであるとしている。

 以上を要するに、本論文は言語設計の方法論・記号処理・実時間プログラミング・プログラミング言語論などの分野の研究に有益な知見と示唆を与えたもので、得られた実時間性能は、実時間知能処理の実現可能性を示しており、情報工学・計算機科学の発展に寄与するところが大きい。よって本論文は博士(工学)の学位請求論文として合格と認められる。

UTokyo Repositoryリンク