研究課題
汎用的なホスト言語上にライブラリとして DSL を実装する技術である、埋込み DSL (embedded DSL) の実装技術について研究開発をおこなった。その中でもとくに、ホスト言語の構文の自由度を増し、より自然な表現が可能な埋込み DSL を実現する技術について研究開発をおこなった。当初、構文の自由度を増すには、「文」や「宣言」に対応することであると考えて研究を進めたが、研究の結果、本質的に重要なのは DSL 中の構文の中で「名前」の束縛を可能にすることであるとの知見を得た。従来の DSL では名前の束縛は原則としてできず、必要な場合はホスト言語の「名前」として束縛し、それを DSL の中からも使う、という方式がとられてきた。このため、DSL の構文の自然さの制限となってしまっていた。本研究では、新たな名前が導入され値が束縛されている、という状態を型情報の一部として取り扱うことで、DSL の中で独自の名前束縛を実現することを可能にした。ホスト言語の型システムを拡張し、型情報として DSL 内の名前束縛を扱えるようにしたので、コンパイル時に不正な名前参照を検出することもできる。型推論の一般的な理論的枠組みでは、名前と型の対応関係を型環境Γで表現するが、このΓをも属性に含むような新たな型、turnstile type を考案した。以上の研究に加え、 fluent API と呼ばれるメソッド呼び出しやフィールドアクセスの連鎖で、埋込みDSL プログラムを表現する技法のためのプログラミングシステムの研究も開始した。また埋込み DSL の実装の基礎となるような言語機構の研究も合わせておこなった。
2: おおむね順調に進展している
埋込み DSL (Domain Specific Langauge) のための基礎技術を研究した。DSL 構文の表現力を増す研究を平成 29 年度にかけて実施する計画であったが、当初計画していた研究目標を概ね平成 28 年度から 29 年度の前半にかけて達成することができた。
平成 28 年度の研究で得られた型システムを駆使して埋込み DSL の表現力を改善するアイデアを深める。具体的には DSL 開発者による DSL の実装を支援する技術として、型システムを活用して文法規則から静的な構文チェック可能な fluent API を自動生成する機構の研究をおこなう。
すべて 2017 2016
すべて 雑誌論文 (3件) (うち査読あり 3件、 オープンアクセス 3件)
The Art, Science, and Engineering of Programming
巻: 1-2 ページ: Article 15
10.22152/programming-journal.org/2017/1/15
Journal of Information Processing
巻: 24-4 ページ: 620-634
https://doi.org/10.2197/ipsjjip.24.620
情報処理学会論文誌 プログラミング
巻: 9-4 ページ: 16-26