• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2018 年度 実施状況報告書

メッセージの到達性を保証しない通信環境におけるセッション型付きプログラミング

研究課題

研究課題/領域番号 17K12662
研究機関岐阜大学

研究代表者

今井 敬吾  岐阜大学, 工学部, 助教 (70456630)

研究期間 (年度) 2017-04-01 – 2021-03-31
キーワードセッション型 / 関数型プログラミング / 型システム / 線形型 / OCaml / 構文拡張 / デッドロック
研究実績の概要

マルチパーティセッション型を一般的な静的型付きプログラミング言語で利用可能にするための技法を考案し、OCaml言語において実装した。本技法は、デッドロックフリー性の核となるグローバル型の整合性を、ホスト言語の型検査機構によって検査する。これにより、型検査に成功した(コンパイルに成功した)並行分散プログラムは、デッドロックなしで動作することが保証される。
従来、マルチパーティセッション型は外部ツールからのコード生成によって実現されており、拡張性・柔軟性に乏しかったが、本技法により、マルチパーティセッション型が静的型付きプログラミング言語のライブラリの形で利用可能になる。これによりデッドロックがないプログラムを容易に効率よく実装できるようになるため、並行分散システムの信頼性向上が期待できる。本研究は次年度において国際会議に投稿・発表する。
さらに、昨年度に国際会議で発表した OCaml におけるバイナリーセッション型の実装 session-ocaml を拡張し、論文誌 Science of Computer Programming に extended version として投稿し、採択された。この拡張は、線形型システムを OCaml 上で模倣する枠組みの上にバイナリーセッション型を実装するものであり、線形型を用いた他のプログラミング言語との親和性が高い。
さらに、本研究の副産物的な結果として、パラメタ化モナドと表層構文の工夫により線形型プログラミングを可能にする枠組みを提案した。その実装である LinOCaml は GitHub 上で公開されている。この枠組みにより、リストや木といった構造をもつ線形型付きのデータを扱うことが可能になった。この結果は論文誌 Journal of Information Processing に採択された。

現在までの達成度 (区分)
現在までの達成度 (区分)

2: おおむね順調に進展している

理由

マルチパーティセッション型の既存のプログラミング言語におけるライブラリ実装が可能となったのは想定以上の進展であり、本研究の題目のうち「セッション型付きプログラミング」が大きく達成されたといえる。その一方で、メッセージの到達性を保証しない通信環境における理論については、通信オートマトンにおける理論を参考にして検討を進めている。

今後の研究の推進方策

マルチパーティセッション型の型付けに関する論文を発表するとともに、メッセージの到達性に関する理論について調査を継続する。通信オートマトン (Communicating Finite State Machine) の理論において、従来の制限を取り払う形での文献が発表されている。これに基づき、メッセージの不達性をエンコードする方法などを検討する。

次年度使用額が生じた理由

7月から8月にかけて英国の共同研究者が来日し、マルチパーティセッション型のプログラミングが想定より早く実現した。このことから、2018年の出張旅費を抑えることができた。理論研究の進展と研究成果の最大化のため、2019年度に英国インペリアルカレッジロンドンへの研究出張と先方研究者の招聘を計画した。その結果として、次年度使用額が生じた。
次年度においては、英国への研究出張と先方研究者の招聘に用いる計画である。

  • 研究成果

    (8件)

すべて 2019 2018 その他

すべて 国際共同研究 (1件) 雑誌論文 (3件) (うち国際共著 1件、 査読あり 2件、 オープンアクセス 2件) 学会発表 (3件) 備考 (1件)

  • [国際共同研究] Imperial College London/Brunel University London(英国)

    • 国名
      英国
    • 外国機関名
      Imperial College London/Brunel University London
  • [雑誌論文] Session-ocaml: A session-based library with polarities and lenses2019

    • 著者名/発表者名
      Imai Keigo、Yoshida Nobuko、Yuen Shoji
    • 雑誌名

      Science of Computer Programming

      巻: 172 ページ: 135~159

    • DOI

      10.1016/j.scico.2018.08.005

    • 査読あり / オープンアクセス / 国際共著
  • [雑誌論文] Towards Bidirectional Synchronization Between Communicating Processes and Session Types2019

    • 著者名/発表者名
      Guo Liye、Ko Hsiang-Shang、Imai Keigo、Yoshida Nobuko、Hu Zhenjiang
    • 雑誌名

      SFDI2019: Second Workshop on Software Foundations for Data Interoperability (In proceedings of 2019 IEEE International Conference on Big Data and Smart Computing (BigComp))

      巻: - ページ: -

    • DOI

      10.1109/BIGCOMP.2019.8679265

    • 査読あり
  • [雑誌論文] Lightweight linearly-typed programming with lenses and monads2019

    • 著者名/発表者名
      Imai Keigo、Jacques Garrigue
    • 雑誌名

      Journal of Information Processing

      巻: 印刷中 ページ: 印刷中

    • オープンアクセス
  • [学会発表] セッション型、簡潔に2019

    • 著者名/発表者名
      オレッグ キセリョーヴ、今井 敬吾
    • 学会等名
      第21回プログラミングおよびプログラミング言語ワークショップ(PPL2019)
  • [学会発表] レンズとモナドを用いた軽量な線形型付きプログラミング2018

    • 著者名/発表者名
      今井 敬吾、ジャック ガリグ
    • 学会等名
      第121回プログラミング研究発表会
  • [学会発表] Session types without sophistry2018

    • 著者名/発表者名
      Oleg Kiselyov、Keigo Imai
    • 学会等名
      IFIP Working Group 2.11, Eighteenth Meeting
  • [備考] LinOCaml: Linearly-typed programming in OCaml

    • URL

      https://github.com/keigoi/linocaml/

URL: 

公開日: 2019-12-27  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi