Mercurial > hg > Members > kaito > slides
view 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 |
line wrap: on
line source
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>Presen</title> <!-- Notes on CSS media types used: 1) projection -> slideshow mode (display one slide at-a-time; hide all others) 2) screen -> outline mode (display all slides-at-once on screen) 3) print -> print (and print preview) Note: toggle between projection/screen (that is, slideshow/outline) mode using t-key Questions, comments? - send them along to the mailinglist/forum online @ http://groups.google.com/group/webslideshow --> <!-- style sheet links --> <link rel="stylesheet/less" href="themes/blank/projection.css.less" media="screen,projection"> <link rel="stylesheet/less" href="themes/blank/screen.css.less" media="screen"> <link rel="stylesheet/less" href="themes/blank/print.css.less" media="print"> <link rel="stylesheet/less" href="blank.css.less" media="screen,projection"> <!-- Notes about less css support - all less stylesheets (*.css.less) need to get listed/loaded first (before the less.js script) - find more info about less.js online @ http://lesscss.org ***** NOTE: less.js browser script currently won’t work if you’re using Google Chrome and the path to your page starts with "file:///" due to a known Chrome issue. (In the developer/js console you will see: XMLHttpRequest cannot load file:///../s6/shared/projection.css.less. Cross origin requests are only supported for HTTP.) --> <!-- add js libs (less, jquery) --> <script src="js/less-1.1.4.min.js"></script> <script src="js/jquery-1.7.min.js"></script> <!-- S6 JS --> <script src="js/jquery.slideshow.js"></script> <script src="js/jquery.slideshow.counter.js"></script> <script src="js/jquery.slideshow.controls.js"></script> <script src="js/jquery.slideshow.footer.js"></script> <script src="js/jquery.slideshow.autoplay.js"></script> <script> $(document).ready( function() { Slideshow.init(); // Example 2: Start Off in Outline Mode // Slideshow.init( { mode: 'outline' } ); // Example 3: Use Custom Transition // Slideshow.transition = transitionScrollUp; // Slideshow.init(); // Example 4: Start Off in Autoplay Mode with Custom Transition // Slideshow.transition = transitionScrollUp; // Slideshow.init( { mode: 'autoplay' } ); } ); </script> </head> <body> <div class="layout"> <div id="header"></div> <div id="footer"> <div align="right"> <img src="images/concurrency.png" width="200"> </div> </div> </div> <div class="presentation"> <!-- add slides here; example --> <div class='slide cover'> <table width="90%" height="90%" border="0" align="center"> <tr> <td><div align="center"> <h1><font color="#808db5">CbC におけるデータセグメントの設計</font></h1> </div></td> </tr> <tr> <td><div align="left"> Kaito Tokumori <script> var date = new Date(); var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); var monthList = new Array("January","February","March","April","May","June", "July","August","September","October","November","December"); document.write(monthList[month]+" "+day+", "+year); </script> <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:300%;height:0.2em;"> </div></td> </tr> </table> </div> <div class='slide'> <h3>研究目的</h3> <p>当研究室ではプログラムをコードセグメント、データセグメントという単位を用いて書くという手法を提案している。その手法を用いてプログラミングを行う言語として"CbC"の開発を行っており、これはCの下位の言語である。CbCにおいてコードセグメント間の移動はgoto文を用いた軽量継続によって行われ、これはTail Call Eliminationという最適化の強制によって実現される。</p> <p>本研究過去に開発されたmicro-c,GCC版のコンパイラに続くLLVM/Clang上でのCbCコンパイラの開発を行う。</p> </div> <div class='slide'> <h3>今週の Task</h3> <p>Data Segment をどうするか</p> </div> <div class='slide'> <h3>Data Segment</h3> <ul> <li>処理対象となるデータの単位. <li>Code Segment の待ち合わせ制御は Data Segment に依存する. <li>Data Segment の外部表現は message pack を使う. <li>priority による処理順序の切り替えが可能. </ul> </div> <div class='slide'> <h3>Data Segment</h3> <ul> <li>CbC にもData Segment Manager に相当するものが必要かどうか. <li>Data に依存して Code が動くようにすることを考えると Code Segment の Manager も必要. <li>Data Segment の定義, 記述方法. <li>Data Segment へのアクセス. </ul> </div> <div class='slide'> <h3>Data Segment の定義と記述</h3> <ul> <li>C/C++ 向けの message pack はこんな感じ </ul> <pre class='code'> int main(void) { /* creates buffer and serializer instance. */ msgpack_sbuffer* buffer = msgpack_sbuffer_new(); msgpack_packer* pk = msgpack_packer_new(buffer, msgpack_sbuffer_write); /* serializes ["Hello", "MessagePack"]. */ msgpack_pack_array(pk, 2); msgpack_pack_raw(pk, 5); msgpack_pack_raw_body(pk, "Hello", 5); msgpack_pack_raw(pk, 11); msgpack_pack_raw_body(pk, "MessagePack", 11); /* deserializes it. */ msgpack_unpacked msg; msgpack_unpacked_init(&msg); bool success = msgpack_unpack_next(&msg, buffer->data, buffer->size, NULL); /* prints the deserialized object. */ msgpack_object obj = msg.data; msgpack_object_print(stdout, obj); /*=> ["Hello", "MessagePack"] */ /* cleaning */ msgpack_sbuffer_free(buffer); msgpack_packer_free(pk); } </pre> </div> <div class='slide'> <h3>Data Segment の定義と記述</h3> <ul> <li>もうちょっと触りやすくしたい <li>通常は構造体にしておけばアクセスが楽. </ul> <pre class='code'> __code cs(ids, ods) { // data segment definition __data dsType { int no; char* msg[2]; }; dsType data1 = {5, {"Hello", "DataSegment"}} // access ds.no = 0; printf("msg: %s %s",ds.msg[0],ds.msg[1]); } </pre> </div> <div class='slide'> <h3>Data Segment と Message pack</h3> <ul> <li>コンパイラ的にはデータセグメントを構造体のように扱うようAST構築しておいて外にだすときに message pack にすればいいんじゃないかな。 <li>外にだすとき, massage pack にするなら出るとき入るときに変換が必要. <li>そういう新しい構文が必要なんじゃないか. </ul> </div> <!-- presentation --> </body> </html>