Mercurial > hg > Members > atton > seminar_slides
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 |
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: --> |