annotate slides/20141104/slide.md @ 77:c638b0792a4a

Add slide for seminar
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Tue, 04 Nov 2014 11:06:42 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
77
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 title: モナドによるプログラムの変更
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 author: Yasutaka Higa
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 cover:
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 lang: Japanese
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 # 研究目的
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 * プログラムを変更するとプログラムの実行結果も変わる
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 * しかし、バージョン互換を維持する場合など、ソースコードを変更した後も同じ結果を得たい場合もある
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 * プログラムの改変の際にモナドとして改変することで過去のプログラムの保存ながら改変する
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 * これによりリファクタリング支援や後方互換性の確保、プログラムの変更による実行結果の変化の検出などを行なう
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 * さらにプログラムの改変をモナドとして表すことで、モナドの理論的背景である圏論の視点からプログラムを改変することの意味を探る
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 # 近況報告
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 * 圏論勉強中
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 * 拾った論文2つほど
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 * Idea : 環境付きFunctor
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 # Category
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 * [圏論勉強会](https://sites.google.com/site/klovelab/Home/category)
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 * なるものがあったので動画で見てます
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 * 2回分ほど
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 # papers : ATS
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 * [ATS 言語を使って不変条件を API に強制する](http://t.co/YJ20R7iRut)
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 * ATS なる言語があるらしい
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 * C 言語を生成する
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 * deductive type, linear type, dynamic type を定義できる
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 * compile time に deductive type による check とかできる
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 * deductive type で長さ付き List を定義して、生成されるC言語のソースが index out of array しないことを強制とかしてました
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 # papars : monoid folding
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 * 圏論の話を聞いていたら、モノイドは畳み込み演算をどこから fold しても良い話が
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 * 並列でやっても良さそう、みたいな
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 * [A monadic calculus for parallel costing of a functional language of arrays](http://link.springer.com/chapter/10.1007%2FBFb0002796)
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 * 実行コストを計算するモデルを定義
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 * それを計算する cost monad とか作る
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 # Idea : Functor with Environment
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 * 環境を考える(variables, type information)
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 * 環境と対応した Functor を考える
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 * 通常の環境がメインメモリ空間
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 * GPUメモリ空間は異なる環境(for Cerium)
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 * 別のPCも別空間(for Alice) # hand shaking with data segment signature
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 # Idea : Functor with Environment
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 * 通常の環境の演算はGPU空間でも同じっぽい
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 * Functor になりそう
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 * GPU に行って、計算して戻ってきても良い
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 * べつに CPU環境で実行しても良い
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 * Code Segment と Data Segment の categorical な考え方になるかも?
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 * 割と精査はしていません
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
c638b0792a4a Add slide for seminar
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 <!-- vim: set filetype=markdown.slide: -->