東京理科大学 情報科学科 滝本研究室

研究テーマ

コンパイラ・インフラストラクチャの研究

 コンパイラ・イフラストラクチャとは,実装を高度にモジュール化しカスタマイズしやすくしたコンパイラの共通基盤です。コンパイラ・イフラストラクチャを用いることによって,言語処理系の一部分の研究であっても提案手法をモジュールとして組み込むことによって,処理系全体を作成することなく,評価を得ることができます。
 本研究室では,東京工業大学佐々研究室と連携して,科学技術振興調整費総合研究「並列コンパイラ向け共通インフラストラクチャの研究」プロジェクト(以降 COINSと呼ぶ)に協力してきました。COINSには,本研究室で開発した最適化器が組み込まれており,これからも発展させたいと考えています。

タンジブルユーザインタフェースの研究

 現在主流のユーザインタフェースは,視覚に重点を置いたグラフィカルユーザインタフェース(GUI)ですが,あたかも物を操作するような実感のあるユーザインタフェースの研究が進められています.
 本研究室では,手の影を用いてデスクトップを操作したり,実際にパズルをするようにプログラムを作成できる,独自のタンジブルユーザインタフェースの研究を行っています.

影インタフェース(動画:画像クリック) タンジブルプログラミング(動画:画像クリック)

コード最適化

 どうせ,プログラミング言語から機械語に変換するのであれば,より効率よく動作し,場合によってはサイズの小さいものを生成してくれることが望まれます。コード最適化は,機械語に変換する過程で,計算を行える部分をその答えで置き換えたり,複数行われる計算を,最初に行われた計算結果で置き換えたり,使われない計算を取り除いたりして,高速な(あるいはサイズの小さい)プログラムを生成する技術です。ゲームやワープロといった巨大なプログラムが増えている現在,非常に重要な技術となっています。
 例えば,多くの種類の最適化を1度にかつ最も効果的な方法で適用する技術の研究は,最近の流行といえます。また,実行時にコードを生成することによって,実行時の情報を利用した優れた最適化を行うこともできます。

並列化技術

 通常,コンピュータは,プログラムを頭から順番に実行していきます。しかし,実際は,同時に実行できる部分を沢山含んでいます。そこで,プログラム中の同時に実行できる部分を解析し,幾つかの命令を並列に実行させることによって,プログラムの高速な実行が可能になります。この技術を並列化といいます。
 従来法より並列実行可能な部分を抽出する手法の研究と,この並列化手法を組み込んだコンパイラの実現は重要な研究課題です。さらに,並列に動作しているプログラム同士が,互いに情報交換 する際にかかる時間を短縮するために,通信を削減研究も非常に重要です。

高位合成

 通常,コンパイラはプログラムを特定のマシンコードに変換しますが,高位合成ではプログラムから直接,論理回路を生成します。これは,そのプログラム専用のCPUを,自動的に生成することに等しいので,高速な実行が可能になります。現在,カリフォルニア大学アーバイン校Nicolau教授Dutt教授カリフォルニア大学サンディエゴ校Gupta教授に御協力頂いて,高位合成処理系SPARKの拡張を行っています。

仮想機械

 高速なコンピュータが安価に手に入るようになった現在,必ずしもプログラムを機械で直接動かさなくとも,十分な実行スピードを得られるようになっています。こうした背景から,仮想機械をターゲットとしたコンパイラが多く作られるようになりました。仮想機械は,異種機械環境に,同一の実行環境を与えます。これによって,機械独立でかつOS独立なソフトウェアを作成することが可能になります。また,移動コードを用いる移動エージェントにとっても重要な技術です。
 そこで,Java仮想機械等の既成仮想機械の高速実行に向けた改良や,サイズが小さく最適化しやすい新しい仮想コードを実行する仮想機械の設計及び実装は重要な課題になっています。

アスペクト指向プログラミング(AOP)

 ソフトウェアが大規模化するにつれて,作成する際に生じるバグや,管理の難しさからソフトウェア危機が叫ばれるようになりました。この問題に対して,オブジェクト指向プログラミングは,プログラムの各部を高度にモジュール化することを可能にし,管理のしやすさと再利用性を高めました。しかしながら,モジュール化したい対象は必ずしもはっきり別れているとは限りません。同じ関心事に関するプログラムであっても,複数のオブジェクトに分散してしまう場合があります。
 アスペクト指向プログラミングは,このような,複数のオブジェクトに散在する同一の関心事を取り出して,アスペクトとして管理することができる新しいプログラミングパラダイムです。アスペクト指向プログラミングでは,専用のプログラミング言語やプログラミング環境が重要であるのと同時に,既存のオブジェクト指向プログラミングで作成されたソフトウェアから,アスペクトを抽出する技術が重要になってきています。

移動エージェント

 現在,多くのコンピュータがネットワークによって繋がっています。このような環境で,プログラムは,もはや1つのコンピュータ上で動作する必要性がなくなっています。もし,日本に居るAさんにとって必要な情報が,世界のどこかのコンピュータ上にあるなら,あたかも探索衛星を飛ばすように探索用のプログラムを放って,探して来てもらえば良いわけです。
 このようなプログラムを移動エージェントといいます。エージェントは,世界中のコンピュータをぴょんぴょん飛び回って,ユーザに必要な情報を拾ってきてくれます。より有用な移動エージェントアプリケーションやその作成方法論,また複雑なエージェントをより簡単に作成できるエージェント記述言語の研究も重要になっています。

移動エージェントを用いた群ロボット制御の研究

 従来のロボット制御は,1つのロボットに専用の制御プログラムを与えることによって行われてきました。これは多くの個体が協調して動作するロボット(以降 群ロボットと呼ぶ)についても同じでした。
 本研究では,各個体は制御プログラムをもちません。制御プログラムはコンピュータ間を移動しながら協調計算をする移動エージェント (他の研究の概略参照)として,自律的に個体を選択して移動します。この個体の選択は,自分が作業するのに適当な資源をもっているか,目的位置に一番近いかといったことを基準に行われます。仕事が終った移動エージェントは消滅するので,エージェントが消滅した個体は,他の仕事を開始することができます。このように群ロボットへの移動エージェントの応用は,資源の効率的な使用とエネルギー消費の抑制を可能にします。本研究は,日本工業大学神林研究室との共同研究です。

フェロモンエージェントによる協調運搬(動画:画像クリック) 飛行ロボットとの協調制御(動画:画像クリック)
移動エージェントを用いた列制御 (動画:画像クリック) 避難誘導システム (動画:画像クリック)

仮想現実(VR)に関する研究

仮想現実(Virtual Reality, VR)とは,コンピュータグラフィックスで 作られた仮想空間に,入り込んだように感じさせる技術です.
仮想世界への没入感を高める頭部装着型のデバイスを用いること で,コンピュータとの新しい関わりを実現しようとしています.

ユーザを取り込んだVR(動画:画像クリック)

拡張現実感(AR)に関する研究

 拡張現実感(Augmented Reality,AR)とは,私たちが現実の環境から受ける知覚情報に,空想物体を用いて情報を拡張する試みであり,これは、仮想空間(Virtual Reality)と現実空間(Reality)を結びつける技術です。上の写真は四角形のマーカに対して,リアルタイムで立方体のCGを表示しているのですが,このように,本当は存在しないモノをコンピュータで作り出し,それがあたかもそこにあるかのように感じさせてくれるわけです。
 仮想情報を現実の世界に融合させることで,新しいユーザインターフェースや新たなインタラクションを構築し,医療・教育・建築・観光・エンタテインメントなど,さまざまな分野で作業支援や情報提示といった応用が期待されています。

指先の認識(動画:画像クリック) 手のひらの認識(動画:画像クリック)
指の方向認識 (動画:画像クリック) ARとの相互作用 (動画:画像クリック)

pagetop