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

2017 年度 実施状況報告書

文脈の変化に応じて離散的に振舞いを変えるソフトウェアのためのプログラミング言語

研究課題

研究課題/領域番号 16K16033
研究機関東京工業大学

研究代表者

青谷 知幸  東京工業大学, 情報理工学院, 助教 (20582919)

研究期間 (年度) 2016-04-01 – 2019-03-31
キーワード文脈指向プログラミング / 反応型プログラミング / 補償処理
研究実績の概要

Javaをはじめとするオブジェクト指向プログラミング(OOP)言語を基礎とする関数的反応型プログラミング(FRP)言語の研究と,FRPを利用した文脈指向プログラミング(COP)言語の研究に取り組んだ.FRPは時々刻々と変化する文脈を簡潔に捉えるための有望な手段の一つであり,従ってCOPの基礎となり得る.OOPにおける反応型プログラミングの主な手法は,C言語などにみられるイベント駆動プログラミング(EDP)である.EDPとFRPには,プログラミングのしやすさにおいて得手不得手があり,一つのプログラミング言語の中で共存することが望ましい.このような研究にはGuido SalvaneschiらによるREScalaがあったが,EDPのための言語機構であるイベントとFRPのための言語機構であるシグナルが分かれて存在しており,イベントとシグナルの変換関数によってEDPとFRPが結ばれているという状況だった.本研究ではイベントとシグナルの統合を提案した.Javaにこの拡張を導入したSignalJを設計し,実装した.研究成果をまとめた論文は<Programming> 2018に採録された.またFRPのCOPへの応用として,プログラムの実行とは非同期的に文脈が変化するプログラムの二つの実行モデルを考案した.一つ目の実行モデルは非同期的な文脈の変化に応じた適切な振舞の選択方法に注目したものである.実現可能性を議論するために,申請者らが以前に提案したCOP言語ServalCJへの導入を検討した.実行モデルとServalCJの拡張のアイデアをまとめた論文はCOP 2018に採録された.2つ目の実行モデルは非同期的な文脈の変化について,既に行ってしまった計算を巻き戻して新たな文脈で計算を行うためのものである.実行モデルのアイデアをまとめた論文はREBLS'18に採録された.

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

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

理由

FRPのCOPへの応用は,センサからの情報に基づいて振舞を変えるプログラムのために重要である.多くのCOP言語の基礎であるOOP言語とFRPの統合が達成できたことは,FRPのCOPへの応用に大きく寄与する.

今後の研究の推進方策

今年度に考案した二つの実行モデルを具体化すること.具体的には計算体系の設計と,JavaやScala,Haskellへの拡張・埋め込みによる実装を考えている.また,当初の計画の通り,活性層の解析手法に取り組む.

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

前年度未使用金額に由来する.今年度については90万円の申請額に対して94万円の実支出であったから,計画どおりに使用したといえる.翌年度については,実験用計算機の購入(30万円程度)と4回の国際会議出張(40万円程度x4),2回の国内出張(10万円程度x2)を計画している.

  • 研究成果

    (7件)

すべて 2018 2017

すべて 雑誌論文 (4件) (うち査読あり 2件) 学会発表 (3件)

  • [雑誌論文] Method safety mechanism for asynchronous layer deactivation2018

    • 著者名/発表者名
      Kamina Tetsuo、Aotani Tomoyuki、Masuhara Hidehiko、Igarashi Atsushi
    • 雑誌名

      Science of Computer Programming

      巻: 156 ページ: 104--120

    • DOI

      https://doi.org/10.1016/j.scico.2018.01.006

    • 査読あり
  • [雑誌論文] Harmonizing Signals and Events with a Lightweight Extension to Java2018

    • 著者名/発表者名
      Kamina Tetsuo、Aotani Tomoyuki
    • 雑誌名

      The Art, Science, and Engineering of Programming

      巻: 2 ページ: 104--120

    • DOI

      https://doi.org/10.22152/programming-journal.org/2018/2/5

    • 査読あり
  • [雑誌論文] Push-based reactive layer activation in context-oriented programming2017

    • 著者名/発表者名
      Kamina Tetsuo、Aotani Tomoyuki、Masuhara Hidehiko
    • 雑誌名

      Proceedings of the 9th International Workshop on Context-Oriented Programming

      巻: 0 ページ: 17--21

    • DOI

      https://doi.org/10.1145/3117802.3117805

  • [雑誌論文] A DSL for compensable and interruptible executions2017

    • 著者名/発表者名
      Inoue Hiroaki、Aotani Tomoyuki、Igarashi Atsushi
    • 雑誌名

      Proceedings of the 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems

      巻: 0 ページ: 8--14

    • DOI

      https://doi.org/10.1145/3141858.3141860

  • [学会発表] 証明支援器Coqを使ったプログラミング言語の操作的意味論に基づく型安全性の拡張可能な形式化の研究2018

    • 著者名/発表者名
      奥河 諒, 青谷 知幸, 増原 英彦
    • 学会等名
      プログラミングおよびプログラミング言語ワークショップ
  • [学会発表] ContextWorkflow: 中断と償いのためのDSL2018

    • 著者名/発表者名
      井上 裕昭, 青谷 知幸, 五十嵐 淳
    • 学会等名
      プログラミングおよびプログラミング言語ワークショップ
  • [学会発表] プログラミング言語へのバージョンの導入の研究2018

    • 著者名/発表者名
      田辺 裕大, 青谷 知幸, 増原 英彦
    • 学会等名
      プログラミングおよびプログラミング言語ワークショップ

URL: 

公開日: 2018-12-17  

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

Powered by NII kakenhi