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

2018 Fiscal Year Annual Research Report

Implementation techniques for Domain Specific Languages

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 プログラムを表現する 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)

All 2020 2019 2018

All Journal Article (6 results) (of which Peer Reviewed: 6 results)

  • [Journal Article] Generating a Generic Fluent API in Java2020

    • Author(s)
      Tomoki Nakamaru and Shigeru Chiba
    • Journal Title

      The Art, Science, and Engineering of Programming

      Volume: 4 Pages: -

    • DOI

      10.22152/programming-journal.org/2020/4/9

    • Peer Reviewed
  • [Journal Article] Generating fluent embedded domain-specific languages with subchaining2019

    • Author(s)
      Tomoki Nakamaru, Kazuhiro Ichikawa, Tetsuro Yamazaki, and Shigeru Chiba
    • Journal Title

      Journal of Computer Languages

      Volume: 50 Pages: 70-83

    • DOI

      10.1016/j.jvlc.2018.11.001

    • Peer Reviewed
  • [Journal Article] Buffered Garbage Collection: An Approach to Collecting Self-Created Garbage Objects2019

    • Author(s)
      Tetsuro Yamazaki, Shigeru Chiba
    • Journal Title

      Journal of Information Processing

      Volume: 27 Pages: 479-488

    • DOI

      10.2197/ipsjjip.27.479

    • Peer Reviewed
  • [Journal Article] Foreign language interfaces by code migration2019

    • Author(s)
      Shigeru Chiba
    • Journal Title

      The 18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE 2019)

      Volume: - Pages: 1-13

    • DOI

      10.1145/3357765.3359521

    • Peer Reviewed
  • [Journal Article] Generating a fluent API with syntax checking from an LR grammar2019

    • Author(s)
      Tetsuro Yamazaki, Tomoki Nakamaru, Kazuhiro Ichikawa, and Shigeru Chiba
    • Journal Title

      The ACM Proceedings of the ACM on Programming Languages (PACMPL)

      Volume: 3 Pages: 134:1-134:24

    • DOI

      10.1145/3360560

    • Peer Reviewed
  • [Journal Article] Buffered Garbage Collection for Self-Reflective Customization2018

    • Author(s)
      Tetsuro Yamazaki and Shigeru Chiba
    • Journal Title

      Proc. of 33rd Annual ACM Symposium on Applied Computing (SAC 2018)

      Volume: - Pages: 1256-1259

    • DOI

      10.1145/3167132.3167416

    • Peer Reviewed

URL: 

Published: 2021-01-27  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi