2018 Fiscal Year Research-status Report
アクターモデルと関数リアクティブプログラミングの融合による組込みシステム開発支援
Project/Area Number |
18K11236
|
Research Institution | Tokyo Institute of Technology |
Principal Investigator |
渡部 卓雄 東京工業大学, 情報理工学院, 教授 (20222408)
|
Project Period (FY) |
2018-04-01 – 2021-03-31
|
Keywords | 関数リアクティブプログラミング / アクターモデル / 文脈指向プログラミング / 組込みシステム / 分散システム |
Outline of Annual Research Achievements |
(a) アクターモデルを実行系とする分散型関数リアクティブプログラミング言語の実装方式を提案した.関数リアクティブプログラミング(FRP)においては,関数プログラミングの利点である参照透明性が意味を持つためには,時変値の時間的な一貫性が保たれることが必要である.しかし分散システムにでは通信の遅延やメッセージの消失等により,全ての時変値について時間的一貫性を保つことは難しい.提案手法では,データソースとなる時変値(例えばセンサの測定値)毎に,それに依存する時変値間での時間的一貫性が保たれる仕組みを導入することで,参照透明性を享受しつつ効率的な実装が可能になることを示した.プロトタイプの実行形をErlangで実装し,いくつかのアプリケーションによる評価を通して提案手法の有効性を確認した. (b) 小規模組み込みシステム向けに設計された関数リアクティブプログラミング(FRP)言語Emfrpのための文脈指向プログラミング機構を提案した.Emfrpは静的型付けに加え,時変値を一級データとして扱わないことや再帰の禁止といった言語設計上の制約を設けており,プログラムが利用する記憶領域の大きさが静的に決定可能であるという特徴を持つ.これによりマイクロコントローラ等の小規模組み込みシステム記述に適しているが,実行時情報にもとづく柔軟な振る舞い,例えば変化する環境への適応動作などの表現に制約が生じる.提案方式では,適応的な動作のモジュール化を促進するプログラミングパラダイムである文脈指向プログラミング(COP)の考え方によってこの問題を解決している.具体的には,時変値の値にもとづいて層(文脈依存の動作を記述するためのモジュール)を活性化する機構を導入し,上で述べたEmfrpの記憶領域に関する静的な特性を失うことなく,実行時文脈の変化に伴う振る舞いの動的な変更の宣言的な記述を可能にした.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
申請調書時点の研究計画では,初年度はアクターモデルを実行系とする自己反映機構を持つFRP言語のプロトタイプ実装を行うこととなっている.研究成果概要の(a)で述べているように,自己反映計算機構を除いた分散型FRP言語の実現方式の提案と実装を行なっている.自己反映計算機構を導入する当初の目的は適応的な動作の表現であるが,これは研究成果概要の(b)で述べた文脈指向プログラミング機構の導入によって十分カバーできることを示している.特にプログラムが利用する記憶領域の大きさが静的に決定可能であるという性質と,一般的な自己反映計算機構の両立が難しいことを考えると,適応動作の表現は文脈指向プログラミング機構によって実現する方が望ましい.以上より,現在までの進捗状況はおおむね順調であると判断する.
|
Strategy for Future Research Activity |
研究成果概要の(a)で述べたアクターモデルを実行系とするFRP言語の処理系に(b)で述べた文脈指向プログラミング機構を導入し,適応動作や非同期動作をカバーできる言語処理系として実装を行う. また,最近は小規模システムにおいてもマルチコアプロセッサの導入が一般的であるため,そのようなシステムで効率的に並列動作可能な処理系の実現方式を提案する.これは当初計画にはなかったが,既に基本的な実装方針が確定し予備実験は完了しているため,ある程度有用な結果を得る見通しがある. 加えて,当初の計画通り,本研究において提案するFRP言語XFRPのためのテストおよび形式的検証手法の提案にむけ,XFRPの形式的意味,具体的にはこの言語の操作的意味を明確にする.
|
Research Products
(9 results)