Categorical Formalization of Program Modification

Yasutaka Higa

Categorical Formalization of Program Modification

Yasutaka Higa

研究目的 (Categorical Formalization)

  • プログラムの信頼性を向上させるために開発手法に着目する
  • プログラムの信頼性が変化するのはプログラムを変更した時である
  • 信頼性を保ちながらプログラムを変更にプログラムの変更を形式化する
  • Kleisli Category の Kleisli Triple と対応のある Monad によってプログラムの変更を記述する

研究目的 (Parallel Debugger)

  • 本研究では Monad を用いてプログラムの変更を定義する
  • Monad とは meta computation とデータ構造を対応付ける手法である
  • プログラムの変更は変更前の動作を保存しつつ変更後の動作を追加することで表現する
  • 異なるバージョンのプログラムを同時に実行し、トレースを比較することでデバッグを支援する手法を提案する

近況報告

  • ウィンターワークショップ採択通知来ました
  • TEP のスライドちょっと進めてます
  • MonadTrans 書き始めてます

ウィンターワークショップ採択通知

  • 採択通知来ました(2014/12/18)
  • ちなみに空いてるスペースに研究のモデルとか書いてもらえると、とのコメントを貰いました

卒論のスライド書いてて思ったこと

  • プログラムは variable と function の組み合せ
  • delta は function ごとの versioning
  • 関数の結合法則を Delta でも保つのは
  • versioning された関数の結合法則
  • mu, eta は version ごとの合成則

MonadTrans 書き始めてます

  • MonadTrans, trace を取る分には必須では無いのでは
  • Delta (IO a) とかしたいので
  • MonadTrans は IO (Delta a) かも?
  • MonadTrans があるなら Delta に入れられる、みたいな感じになりそう
  • WriterT があるのでそれを使えば trace 自体は書ける?
  • とりあえず今は DeltaT で書いてますが定義できてないです