JSSST2021 Talks

Posted on September 1, 2021

関数リアクティブプログラミングにおける時変値の初期化手法の提案

白鳥佑弥, 森口草介, 渡部卓雄
日本ソフトウェア科学会第38回大会, Sep. 1-3, 2021.

概要

関数リアクティブプログラミング(FRP)は,時間とともに変化する値を時変値として抽象化することで,組込みシステム等のリアクティブシステムを時変値の更新計算として記述するプログラミングパラダイムである.更新計算に時変値の過去の値を用いることで,変化量や累積値などのシステムの状態に依存した動作を表現できるようになるが,システム起動時には過去の値は存在しないため,あらかじめ初期値を設定する必要がある.センサの計測値や現在時刻等,実行時に決定される値について不適切な初期値を用いた場合,システム起動直後の挙動が不安定になることがある.アプリケーションごとに適当な値を想定して初期値とするといったアドホックな方法は,プログラムのモジュール化を阻害する.本研究では組込みシステム向けFRP言語の時変値について,適切な初期値を自動的に決定する初期化手法について提案する.


小規模組込みシステム向けFRP言語における周期的タスクの記述方式

辻󠄀裕太, 森口草介, 渡部卓雄
日本ソフトウェア科学会第38回大会, Sep. 1-3, 2021.

概要

関数リアクティブプログラミング (FRP) は,時間とともに変化する値(時変値)によってプログラムを抽象化し,入力から出力への計算の宣言的な記述を可能にするプログラミングパラダイムである.本研究では,組込みシステム向けFRP言語Emfrpに対して周期的タスクの記述を可能にする構文および処理系の拡張を導入する.周期的なパルスあるいは時刻を時変値とすることで,Emfrpで周期的タスクを簡潔に表現することは可能であるが,従来の処理系で生成されるコードの実行効率は高くない.提案手法では,周期的タスクの実行におけるリアルタイム性の向上だけでなく,入力の取得頻度および各時変値の更新頻度を適切に選び,結果として実行効率の向上を可能にする.本稿では拡張した構文およびコンパイラによって生成されるコードについて述べ,これらについて例題を通して既存のEmfrpのものと比較し,本手法の有用性を示す.