Mercurial > hg > Members > atton > generated_seminar_slides
comparison slides/20140715/slide.md @ 29:e2c7d95e9d81
auto-Update generated slides by script
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 15 Jul 2014 15:40:27 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
28:9e50a3dd76fe | 29:e2c7d95e9d81 |
---|---|
1 title: プログラムのデバッグ支援(仮) | |
2 author: Yasutaka Higa | |
3 cover: | |
4 lang: Japanese | |
5 | |
6 | |
7 | |
8 # 研究目的(仮) | |
9 * プログラミングにおいて、ソースコードを改変するとプログラムの挙動も変わる | |
10 * 挙動は予想されていた挙動と異なる場合があり、それはバグとなる | |
11 * ソースコードの改変前と改変後の挙動を比較することで、デバッグの支援になるのでは無いか | |
12 * 異なるバージョンのプログラムを同時に実行できるデバッグ支援ツールを開発する | |
13 | |
14 | |
15 # 近況報告 | |
16 * オープンキャンパスは土曜日です | |
17 * ハッカーズチャンプルー行ってきました | |
18 * glibc の printf ちょっと見たりしました | |
19 * parallel debugger の 例探しは難航中 | |
20 * Reflection without remorse を一通り流し読み | |
21 | |
22 | |
23 # parallel debugger sample session | |
24 * Cerium を clone してみました | |
25 * debugger なので実行できるコードを考える | |
26 * あるならそれで bisect できる | |
27 * VCS にさせるべきなのかな、と思ってしまったり | |
28 * もっと内部的な処理が分かる実行コード? | |
29 * それってもうテストなのでは | |
30 * うーん、ってなってます | |
31 | |
32 # reflection without remorse | |
33 * 所感まとめ | |
34 * モノイドに対する演算で右結合だと遅いやつ | |
35 * それを右結合で書かれても CPS にすることで左結合にしよう | |
36 * データ型の変換で CPS に変えることができそう | |
37 * 適応例 | |
38 * list の ++ とか | |
39 * Monad にも適用可能っぽいです | |
40 | |
41 | |
42 # reflection without remorse - diff list | |
43 * hg/Members/atton/haskell/reflection_without_remorse にあります | |
44 * DiffList を定義 | |
45 * リストを取ってリストを返す | |
46 | |
47 ``` | |
48 type DiffList a = [a] -> [a] | |
49 ``` | |
50 | |
51 # reflection without remorse - abs and rep | |
52 * List から DiffList にする rep と DiffList から List にする abs | |
53 | |
54 ``` | |
55 absFromDiffList :: DiffList a -> [a] | |
56 absFromDiffList a = a [] | |
57 rep :: [a] -> DiffList a | |
58 rep = (++) | |
59 ``` | |
60 | |
61 | |
62 # reflection without remorse - concat diffliset | |
63 * difflist の concat は 関数合成 | |
64 * difflist 最後に abs されるまで ++ は評価されないので速い | |
65 * 実行例はリポジトリで | |
66 | |
67 ``` | |
68 (+++) :: DiffList a -> DiffList a -> DiffList a | |
69 (+++) = (.) | |
70 ``` | |
71 | |
72 <!-- vim: set filetype=markdown.slide: --> |