2017 Fiscal Year Annual Research Report
Project/Area Number |
15H02682
|
Research Institution | The University of Tokyo |
Principal Investigator |
千葉 滋 東京大学, 大学院情報理工学系研究科, 教授 (80282713)
|
Project Period (FY) |
2015-04-01 – 2019-03-31
|
Keywords | ソフトウェア開発の効率化・安定化 / ソフトウェア学 / プログラミング言語 |
Outline of Annual Research Achievements |
汎用的なホスト言語上にライブラリとしてDSLを実装する技術である埋め込みDSL (embedded DSL) の実装技術について引き続き研究開発をおこなった。今年度はとくにメソッド呼び出しやフィールドアクセスの連鎖で埋め込み DSL プログラムを表現する fluent API と呼ばれる技法のためのプログラミングシステムの研究に注力した。Fluent API による埋め込み DSL を実装するにあたり、ホスト言語が静的な型システムをもっていれば、その型システムを用いて fluent API のメソッド呼び出し等の鎖の並びの正しさをコンパイル時にその静的型システムを用いて検査することができる。そのような検査手法は、Java 言語のような産業界等で広く使われる言語の場合、実用的な速度で実施するのは容易ではなかったが、本研究では、Java 言語のような比較的弱い型システムを持つ言語であっても、実用的な効率で検査を実施する手法を開発した。本研究の手法は、検査可能なメソッド呼び出し等の鎖の種類を制限することで、実用的な効率を実現している。我々はこの制限にともなう実用的な問題は小さいと考えている。我々は、研究で得られた手法を実際に利用可能にするため、Silverchain と呼ぶ fluent API 生成器を開発し公開した。利用者が fluent API のメソッド呼び出しの鎖の正しい並び順を、そのメソッド呼び出しをトークンとする文法規則として記述すると、その記述にしたがって fluent API の雛形を Silverchain は出力する。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
Fluent API とよばれる埋め込み DSL の実現方法について研究した。ホスト言語の型システムを用いてメソッド呼び出しやフィールドアクセスの正しさの検査をおこなう手法の実現にあたり、入れ子の扱いについて研究を深めたため、当初の計画通りではなかったが平成 30 年度にかけて研究計画を達成することができた。
|
Strategy for Future Research Activity |
ホスト言語の静的型システムを用いた fluent API の静的検査に関する H.29 年度の成果をさらに深めて実用性を高めてゆく。
|
Research Products
(5 results)