• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2016 Fiscal Year Annual Research Report

ドメイン専用言語の実装技術

Research Project

Project/Area Number 15H02682
Research InstitutionThe 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 を実現する技術について研究開発をおこなった。当初、構文の自由度を増すには、「文」や「宣言」に対応することであると考えて研究を進めたが、研究の結果、本質的に重要なのは DSL 中の構文の中で「名前」の束縛を可能にすることであるとの知見を得た。従来の DSL では名前の束縛は原則としてできず、必要な場合はホスト言語の「名前」として束縛し、それを DSL の中からも使う、という方式がとられてきた。このため、DSL の構文の自然さの制限となってしまっていた。本研究では、新たな名前が導入され値が束縛されている、という状態を型情報の一部として取り扱うことで、DSL の中で独自の名前束縛を実現することを可能にした。ホスト言語の型システムを拡張し、型情報として DSL 内の名前束縛を扱えるようにしたので、コンパイル時に不正な名前参照を検出することもできる。型推論の一般的な理論的枠組みでは、名前と型の対応関係を型環境Γで表現するが、このΓをも属性に含むような新たな型、turnstile type を考案した。
以上の研究に加え、 fluent API と呼ばれるメソッド呼び出しやフィールドアクセスの連鎖で、埋込みDSL プログラムを表現する技法のためのプログラミングシステムの研究も開始した。また埋込み DSL の実装の基礎となるような言語機構の研究も合わせておこなった。

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

埋込み DSL (Domain Specific Langauge) のための基礎技術を研究した。DSL 構文の表現力を増す研究を平成 29 年度にかけて実施する計画であったが、当初計画していた研究目標を概ね平成 28 年度から 29 年度の前半にかけて達成することができた。

Strategy for Future Research Activity

平成 28 年度の研究で得られた型システムを駆使して埋込み DSL の表現力を改善するアイデアを深める。具体的には DSL 開発者による DSL の実装を支援する技術として、型システムを活用して文法規則から静的な構文チェック可能な fluent API を自動生成する機構の研究をおこなう。

  • Research Products

    (3 results)

All 2017 2016

All Journal Article (3 results) (of which Peer Reviewed: 3 results,  Open Access: 3 results)

  • [Journal Article] User-Defined Operators Including Name Binding for New Language Constructs2017

    • Author(s)
      Kazuhiro Ichikawa and Shigeru Chiba
    • Journal Title

      The Art, Science, and Engineering of Programming

      Volume: 1-2 Pages: Article 15

    • DOI

      10.22152/programming-journal.org/2017/1/15

    • Peer Reviewed / Open Access
  • [Journal Article] Expanding Event Systems to Support Signals by Enabling the Automation of Handler Bindings2016

    • Author(s)
      Yung Yu Zhuang, Shigeru Chiba
    • Journal Title

      Journal of Information Processing

      Volume: 24-4 Pages: 620-634

    • DOI

      https://doi.org/10.2197/ipsjjip.24.620

    • Peer Reviewed / Open Access
  • [Journal Article] 有効範囲を既知のコールパスに限定する Ruby 向けの安全な クラス拡張 Method seals2016

    • Author(s)
      福室 嶺・千葉 滋
    • Journal Title

      情報処理学会論文誌 プログラミング

      Volume: 9-4 Pages: 16-26

    • Peer Reviewed / Open Access

URL: 

Published: 2018-12-17  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi