2018 Fiscal Year Annual Research Report
Implementation techniques for Domain Specific Languages
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 と呼ばれる技法に着目し、この連鎖の正しさを静的に検査する手法の研究をおこなった。まず、比較的弱い型システムをもつが産業界等で広く使われている Java 言語向けに開発した、fluent API生成器 Silverchain の実装技術について、前年度発表の論文の内容をさらに深めた論文を発表した。さらに Java 言語より強力な型システムをもつ Scala や Haskel, C++ 言語向けにも同様の fluent API 生成器を開発した。この生成器 typelevelLR が生成する fluent API は、誤った連鎖でその API を利用すると、ホスト言語のコンパイラの型検査器がエラーを発する API である。正しい連鎖の定義は、LR 文法の形で生成器に与えられる。我々が開発した同様の生成器である Silverchain は LR 文法の形で与えられる連鎖の定義を処理することはできなかった。関連研究には Java 言語で LR文法の形で与えられる定義を処理可能であることを示した研究も存在するが、実用的な速度で型検査できる fluent API を生成することはできなかった。我々の typelevelLR は type class を活用し、実用的な速度で型検査できる API を生成する。また Ruby 言語から Python 言語の上の埋め込み DSL を無用な混乱なく利用できるようにするフレームワーク Yadriggy も研究開発した。
|
Research Progress Status |
平成30年度が最終年度であるため、記入しない。
|
Strategy for Future Research Activity |
平成30年度が最終年度であるため、記入しない。
|
Research Products
(6 results)