研究室訪問

システム・ソフトウェア研究部門

ソフトウェア構成(大堀)研究室

ソフトウェア構成研究分野教授大堀  淳
助教上野 雄大
助教森畑 明昌

http://www.pllab.riec.tohoku.ac.jp/

主な研究内容

図1 次世代高信頼プログラミング言語SML#の構造と機能

図1 次世代高信頼プログラミング言語SML#の構造と機能

図2 プログラム変換によるアルゴリズム構成の枠組み

図2 プログラム変換によるアルゴリズム構成の枠組み

 本研究室では、ソフトウェアの系統的な構成に関して、理論実用の両面から広く取り組んでいます。最近の主な研究テーマとしては以下が挙げられます。

1. 次世代高信頼プログラミング言語SML#の開発

 本研究室では、高信頼プログラミング言語の基礎理論および実装技術の研究成果を活かし、次世代高信頼プログラミング言語SML#の開発を行っています。図1に示すようにSML#は、信頼性や生産性の高さから近年注目を集めている関数型言語に属し、既存の言語に比べ、(1) 柔軟なプログラム記述をサポートする、多相型レコード演算やランク1多相性などの高度な型システム (2) 既存のソフトウェア資源やデータベースを利用可能とする、C言語や関係データベースとのシームレスな連携機能 (3) 大規模なソフトウェアの開発を容易にする分割コンパイル機能、などの特徴があります。現在も、さらなる機能拡張や、実用的なソフトウェア開発での有用性の評価など、SML#のより一層の発展に向け研究開発を続けています。

2. 高水準なプログラミング言語間の連携機構

 高機能なアプリケーションを複数のプログラミング言語を組み合わせて開発することは今日よく行われています。例えばWebアプリケーションでは、サーバープログラムはRubyなどのスクリプト言語で記述し、データベースへの問い合わせはSQLで行い、ユーザーインターフェース部分はXMLやJavascriptを用いるなど、各部分でそれぞれ異なる言語を用いるのが一般的です。しかし、このように複数の言語を連携させた場合、適切にプログラム全体を構築することが難しくなります。本研究室では、言語間の違いを吸収するコードを系統的に導出することで、個々の言語の特徴を保存したまま、より信頼性の高い方法で言語間の連携を行う方法を研究しています。

3. プログラム変換によるアルゴリズム構成

 複雑な処理を効率良く行うには良いアルゴリズムが必須ですが、これは往々にして専門的な知識を要求します。本研究室では、図2に示すように効率の良いアルゴリズムを用いたプログラムを、行いたい処理の仕様記述から、プログラム変換を用いて系統的に導出する手法を研究しています。最近の成果は、解候補を全列挙しその中から最も優れたものを選ぶという組合せ最適化問題の直截な解法から動的計画法や貪欲法を用いた効率の良いプログラムを得る手法や、並列性を全く意識せずに記述したプログラムから分割統治法による並列プログラムを自動導出する手法、などです。

Page Top