annotate slides/20150203/slide.md @ 112:57f1f2d9e852

Add akatsuki slide
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Tue, 15 Sep 2015 16:34:16 +0900
parents bbd719e94ac5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
95
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 title: Categorical Formalization of Program Modification
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 author: Yasutaka Higa
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 profile:
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 lang: Japanese
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 # 研究目的 (Categorical Formalization)
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 * プログラムの信頼性を向上させるために開発手法に着目する
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 * プログラムの信頼性が変化するのはプログラムを変更した時である
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 * 信頼性を保ちながらプログラムを変更にプログラムの変更を形式化する
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 # 研究目的 (Parallel Debugger)
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 * 本研究では Monad を用いてプログラムの変更を定義する
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 * Monad とは meta computation とデータ構造を対応付ける手法である
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 * プログラムの変更は変更前の動作を保存しつつ変更後の動作を追加することで表現する
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 * 異なるバージョンのプログラムを同時に実行し、トレースを比較することでデバッグを支援する手法を提案する
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 # 近況報告
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 * DeltaM の Monad の証明できました
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 * 卒論の目次を一旦書いてみました
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 # Delta の証明
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 * Delta の定義をちょっと変えました
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 * 全ての Delta が同じバージョンを持つ
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 * 無限の変更は対応しています
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 * record で書いてるのは Category の Monad 則です
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 * Natural Transformation(eta, mu), unity-law, association-law
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 * bind は無し
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 # DeltaM の証明
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 * 全ての Delta のバージョンが1以上かつ同じであれば DeltaM も Monad でもある
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 * 中の Monad は Functor と Monad である必要がある
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 * preserve-id, covariant, natural termination of eta and mu, unity-law, association-law
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 * 変更数は無限です
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 * 若干 Functor に証明を追加しました
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 # fmap-equiv
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 * fmap する function が refl でも変換できない
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 * fmap-equiv として Functor の record に関数変換用の法則を追加
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 * fmap-equiv : (f == g) -> (fmap f x == fmap g x)
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 * Relation.Binary.PropositionalEquality に cong-app があるので良いかと判断
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 * cong-app : (f == g) -> f x == g x
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 * higher-order function の equivalence ってあります?
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 # tips
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 * DeltaM は実際 Delta (M A) の wrapper
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 * constructor は 1 つなので isomorphic に対応する
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 * 外す処理が必須でした
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 * mu を実行する時は一旦外して Deltaのmu, Inner Monad のmu
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 * termination checking を回避するためになるべく展開しておいた方が良かった
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 * Monad を合成する処理を Monad として書いてる感じが
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
bbd719e94ac5 Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 <!-- vim: set filetype=markdown.slide: -->