研究概要 |
1. 動的言語の為の確率的型推論アルゴリズムの開発 変数の定義使用関係を確率のグラフィカルモデルとみなし, Pearlの確率伝播法を応用する事によって動的言語で記述されたプログラムの各変数の型を確率的に推論するアルゴリズムを開発した。 昨今Python, Rubyなどの動的プログラミング言語の, データ解析用途等処理系の性能を要する分野における需要が高まってきている。プログラムの制御フローやデータ構造を変換するような高度な最適化を可能とする為には, 実行前にプログラムを解析する手法の確立が必要である。 既存のHindley-Milnerアルゴリズムを元にした型推論手法は動的言語が本質的に持つ様々な不確実性を厳密に取り扱う事が難しく, 言語のサブセットに対してしか利用出来ない・型注釈を必要とする等の問題がある。確率論に基づく手法では不確実性を定量的に取り扱う事が可能となり, 様々な状況に柔軟に対応出来る。また、提案手法ではプログラムに関する統計的な情報を事前確率の計算に利用する。これは従来のプログラムの解析技術では用いられなかった情報であり、理学的に研究の価値があると言える。 2. ドメインオントロジーを利用した生成的プログラミングによる高性能計算 科学計算や高性能計算に関するドメインオントロジーを構築し、それを利用して対話的セッションによって高性能なプログラムを半自動的に生成する手法の開発を開発した。各分野に固有の知識を利用する事により、汎用的な最適化手法では達成する事の出来ない非常に高度な最適化が可能となる。 同様のアプローチでは領域固有言語(DSL)を利用するものが主であるが、これはプログラムの記述を目的とする言語であるので知識表現の為の言語としてはその表現力の低さが問題となる。オントロジー記述言語は一階述語論理を元にする言語であり、高性能計算に関連する知識体系を表現するのに十分の表現力を持っている。本研究ではこのフレームワークを実現する為に最適なプログラミング言語の仕様についても考慮し開発を行った。
|