annotate s6/2014_07_01.html @ 5:ab2d529bb1d7

add slide
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 14 Oct 2014 19:17:35 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 <!DOCTYPE html>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 <html>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 <head>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 <meta charset='utf-8'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 <title>Presen</title>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <!--
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 Notes on CSS media types used:
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 2) screen -> outline mode (display all slides-at-once on screen)
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 3) print -> print (and print preview)
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 Note: toggle between projection/screen (that is, slideshow/outline) mode using t-key
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 Questions, comments?
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 - send them along to the mailinglist/forum online @ http://groups.google.com/group/webslideshow
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 -->
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 <!-- style sheet links -->
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 <link rel="stylesheet/less" href="themes/blank/projection.css.less" media="screen,projection">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <link rel="stylesheet/less" href="themes/blank/screen.css.less" media="screen">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <link rel="stylesheet/less" href="themes/blank/print.css.less" media="print">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <link rel="stylesheet/less" href="blank.css.less" media="screen,projection">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 <!-- Notes about less css support
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 - all less stylesheets (*.css.less) need to get listed/loaded first (before the less.js script)
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 - find more info about less.js online @ http://lesscss.org
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 ***** NOTE:
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 less.js browser script currently won’t work if you’re using Google Chrome
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 and the path to your page starts with "file:///" due to a known Chrome issue.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 (In the developer/js console you will see:
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 XMLHttpRequest cannot load file:///../s6/shared/projection.css.less.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 Cross origin requests are only supported for HTTP.)
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 -->
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 <!-- add js libs (less, jquery) -->
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 <script src="js/less-1.1.4.min.js"></script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 <script src="js/jquery-1.7.min.js"></script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 <!-- S6 JS -->
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 <script src="js/jquery.slideshow.js"></script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 <script src="js/jquery.slideshow.counter.js"></script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 <script src="js/jquery.slideshow.controls.js"></script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 <script src="js/jquery.slideshow.footer.js"></script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 <script src="js/jquery.slideshow.autoplay.js"></script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 <script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 $(document).ready( function() {
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 Slideshow.init();
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 // Example 2: Start Off in Outline Mode
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 // Slideshow.init( { mode: 'outline' } );
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 // Example 3: Use Custom Transition
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 // Slideshow.transition = transitionScrollUp;
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 // Slideshow.init();
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 // Example 4: Start Off in Autoplay Mode with Custom Transition
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 // Slideshow.transition = transitionScrollUp;
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 // Slideshow.init( { mode: 'autoplay' } );
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 } );
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 </script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 </head>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 <body>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 <div class="layout">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 <div id="header"></div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 <div id="footer">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 <div align="right">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 <img src="images/concurrency.png" width="200">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 <div class="presentation">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 <!-- add slides here; example -->
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 <div class='slide cover'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 <table width="90%" height="90%" border="0" align="center">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 <tr>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 <td><div align="center">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 <h1><font color="#808db5">CbC におけるデータセグメントの設計</font></h1>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 </div></td>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 </tr>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 <tr>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 <td><div align="left">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 Kaito Tokumori
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 <script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 var date = new Date();
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 var year = date.getFullYear();
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 var month = date.getMonth();
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 var day = date.getDate();
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 var monthList = new Array("January","February","March","April","May","June",
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 "July","August","September","October","November","December");
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 document.write(monthList[month]+" "+day+", "+year);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 </script>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:300%;height:0.2em;">
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 </div></td>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 </tr>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 </table>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 <div class='slide'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 <h3>研究目的</h3>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 <p>当研究室ではプログラムをコードセグメント、データセグメントという単位を用いて書くという手法を提案している。その手法を用いてプログラミングを行う言語として"CbC"の開発を行っており、これはCの下位の言語である。CbCにおいてコードセグメント間の移動はgoto文を用いた軽量継続によって行われ、これはTail Call Eliminationという最適化の強制によって実現される。</p>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 <p>本研究過去に開発されたmicro-c,GCC版のコンパイラに続くLLVM/Clang上でのCbCコンパイラの開発を行う。</p>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 <div class='slide'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 <h3>今週の Task</h3>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 <p>Data Segment をどうするか</p>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 <div class='slide'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 <h3>Data Segment</h3>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 <ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 <li>処理対象となるデータの単位.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 <li>Code Segment の待ち合わせ制御は Data Segment に依存する.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 <li>Data Segment の外部表現は message pack を使う.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 <li>priority による処理順序の切り替えが可能.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 </ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 <div class='slide'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 <h3>Data Segment</h3>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 <ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 <li>CbC にもData Segment Manager に相当するものが必要かどうか.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 <li>Data に依存して Code が動くようにすることを考えると Code Segment の Manager も必要.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 <li>Data Segment の定義, 記述方法.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 <li>Data Segment へのアクセス.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 </ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 <div class='slide'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 <h3>Data Segment の定義と記述</h3>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 <ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 <li>C/C++ 向けの message pack はこんな感じ
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 </ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 <pre class='code'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 int main(void) {
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 /* creates buffer and serializer instance. */
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 msgpack_sbuffer* buffer = msgpack_sbuffer_new();
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 msgpack_packer* pk = msgpack_packer_new(buffer, msgpack_sbuffer_write);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 /* serializes ["Hello", "MessagePack"]. */
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 msgpack_pack_array(pk, 2);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 msgpack_pack_raw(pk, 5);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 msgpack_pack_raw_body(pk, "Hello", 5);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 msgpack_pack_raw(pk, 11);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 msgpack_pack_raw_body(pk, "MessagePack", 11);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 /* deserializes it. */
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 msgpack_unpacked msg;
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 msgpack_unpacked_init(&msg);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 bool success = msgpack_unpack_next(&msg, buffer->data, buffer->size, NULL);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 /* prints the deserialized object. */
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 msgpack_object obj = msg.data;
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 msgpack_object_print(stdout, obj); /*=> ["Hello", "MessagePack"] */
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 /* cleaning */
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 msgpack_sbuffer_free(buffer);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 msgpack_packer_free(pk);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 } </pre>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 <div class='slide'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 <h3>Data Segment の定義と記述</h3>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 <ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 <li>もうちょっと触りやすくしたい
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 <li>通常は構造体にしておけばアクセスが楽.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 </ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 <pre class='code'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 __code cs(ids, ods) {
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
183
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 // data segment definition
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 __data dsType {
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 int no;
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 char* msg[2];
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 };
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 dsType data1 = {5, {"Hello", "DataSegment"}}
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 // access
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 ds.no = 0;
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 printf("msg: %s %s",ds.msg[0],ds.msg[1]);
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
193
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 }
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 </pre>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 </div>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
198 <div class='slide'>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 <h3>Data Segment と Message pack</h3>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 <ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 <li>コンパイラ的にはデータセグメントを構造体のように扱うようAST構築しておいて外にだすときに message pack にすればいいんじゃないかな。
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 <li>外にだすとき, massage pack にするなら出るとき入るときに変換が必要.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 <li>そういう新しい構文が必要なんじゃないか.
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 </ul>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 </div> <!-- presentation -->
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 </body>
ab2d529bb1d7 add slide
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 </html>