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