研究テーマの設定を学生が主体的に行えるように,教員がサポートします.すなわち,まず本人に希望を出してもらい,それを基に面談しながら一緒に研究テーマを作り上げていく方針です.今現在は研究室発足直後のため,参考までに紙名の行っている研究を紹介しています.

新しいパラダイムに基づくプログラミング言語

(1) 文脈指向プログラミングに関する研究

同じソフトウェアでも,使用される環境(場所,時間,実行中のハードウェアなど)や状況(使用履歴やユーザのタスクなど)などに応じて自動的に振る舞いを変えたい場合があります.文脈指向プログラミング(COP)言語は,そのような環境や状況を文脈として記述し,文脈に依存した振る舞いをモジュールとしてまとめて,文脈が変わったら自動的にそれらを切り替える仕組みを提供します.またその記述方法や仕組みによって,プログラムの見通しをよくしたり,検証を容易にするなどの観点から,上のようなソフトウェアの開発を支援します.当研究室では,新たなCOP言語の実現に向けて,数多くの研究成果をあげています.

(2) リアクティブプログラミングに関する研究

「外界からの入力に反応する」という仕組みは,ほとんどのソフトウェアが必要とし,且つ開発に気を遣う部分でもあります.とくに,センサなどから取れる情報の種類が飛躍的に増えている現在では,このような仕組みは重要になります.リアクティブプログラミングは,入力に依存した計算の連鎖を明示的にすることによって,そのようなソフトウェアの開発を支援します.すでに数多くのプログラミング言語で実装されたRx(リアクティブ・エクステンション)などのライブラリが存在しますが,当研究室では,堅牢な理論に基づく簡便な構文を備えたプログラミング言語の実現を目指します.

これらの研究以外にも,新たなプログラミングの言語要素について,多くの研究を行っています(Javaの拡張として実現することが多いです).

プログラミングの活動を支援するためのツール

新たなプログラミングの言語要素やパラダイムを採用することによって,それまで考えつかなかった,あるいは実現するのが困難だったプログラミング支援を可能にすることがあります.例えば,COPにおける文脈に依存したモジュール間の排他性や依存性などの要求が実行中に必ず満たされることを,プログラムを実行する前にチェックする仕組みや,リアクティブプログラミングにおける,外界からの入力に依存した計算の連鎖の途中に存在する不具合を発見するツールなどを考えることができます.そのようなツールに関する研究を行っています.

新しい言語に基づくアプリケーション

新しいプログラミング言語を使用することによってソフトウェア開発がどのように変化するのかを調べるための事例に関する研究を行っています.また,データベースシステムなどの関連分野についても,これまでの成果に基づいた新しいモデルを開拓する活動などを今後行っていきます.