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>