annotate 2015_04_14/slide.md @ 0:47676a16ed13

Add Slides
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 14 Jul 2015 17:23:04 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 title: CbCのData Segmentの設計
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 author: Tatsuki IHA
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 profile:
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 lang: Japanese
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 # 研究目的
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 - 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している.
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 - この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる.
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 - この研究ではGearsのData Segmentの設計を行いつつ, CbCでのData Segmentの設計, 実装を行うことを目的とする.
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 # 近況報告
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 - GearsのData Segmentの設計
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 # GearsのCode Segment
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 - In Data Segmentの受け取り
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 - Out Data segmentの生成(flipする場合もあり)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 - Code Segmentは次のCode Segmentを持っていない
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 - Meta Code Segmentに次のCode Segmentの参照を持たせる
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 # GearsのCode Segment
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 ![](./pictures/code_segment.jpg)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 # GearsのCode Segment
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 ![](./pictures/relation_cs_and_ds.jpg)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 # GearsのData Segment
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 - Data Segmentは実際の値を持たせる
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 - Meta Data Segmentにはsignatureへの参照, 次のData Segmentの参照を持たせる
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 # GearsのData Segment
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 ![](./pictures/data_segment.jpg)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 # Data SegmentでのList
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 - Data Segmentに値
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 - Meta Data Segmentに繋がっているData Segmentの参照をもたせる
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 # Data SegmentでのList
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 ![](./pictures/list.jpg)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 # GearsでのAllocateContext実装
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 - Code Segmentの参照はContextでもつ
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 - 呼ぶCode Segmentのenumでもち, Meta Code Segmentには次のCode Segmentのenumを渡す
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 # AllocateContextの初期化
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 ``` C
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 __code initAllocateContext(struct Context* context) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 ....
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 context->code[Code1] = code1;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 context->code[Code2] = code2;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 context->code[Code3] = code3;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 ....
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 ```
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 # Meta Code Segment
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 ``` C
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 __code meta(struct Context* context, enum Code next) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 goto (context->code[next])(context);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 ```