Mercurial > hg > Members > kaito > slides
view s6/2015_02_24.html @ 13:2d23041bd29a
add slide
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 22 Feb 2015 01:23:02 +0900 |
parents | |
children |
line wrap: on
line source
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>Presen</title> <!-- 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"> <!-- 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"の開発を行っている。</p> <p>CbCにおいてコードセグメントは処理の単位に相当し、データセグメントはその対象となるデータの単位となる。</p> <p>データセグメントは C の構造体のように複数のデータ型の値を持つことができ、後から拡張することが可能である。また、構造を示すシグネチャを持ち、それを参照することで異なるバージョンのプログラム間でも正しく動作することが可能になる。</p> </div> <div class='slide'> <h3>今週やったこと</h3> <ul> <li>コードセグメントのプロトタイプ宣言を自動生成する手法の考案 </ul> </div> <div class='slide'> <h3>前提条件</h3> <ul> <li>プロトタイプ宣言の自動生成はコードセグメントに対してのみ行う。 <li>プロトタイプ宣言を自分で書くことも許す。 <li>定義が見つからなかった場合は何もせず、エラー出力はclang/LLVMに任せる。 </ul> </div> <div class='slide'> <h3>Plan A : 構文解析中にプロトタイプ宣言の自動生成を行う</h3> <ol> <li>プロトタイプ宣言のないコードセグメントへの継続を発見次第その定義を検索 <li>定義に基づいてプロトタイプ宣言の自動生成 </ol> <h3>利点</h3> <ul> <li>プログラマが書いたプロトタイプ宣言との衝突を気にしなくて良い <li>引数に構造体を含む場合にその定義を気にしなくて良い </ul> <h3>欠点</h3> <ul> <li>自動生成を行う度に全体を検索することになる </ul> </div> <h3>Plan B : 最初にファイル全体を読んで自動生成を行う</h3> <ol> <li>構文解析前にファイル全体を読み込む <li>構造体の定義を解析 <li>コードセグメントの定義からプロトタイプ宣言の生成 </ol> <h3>利点</h3> <ul> <li>最初に一度読むだけで良い </ul> <h3>欠点</h3> <ul> <li>プログラマがかいたプロトタイプ宣言との衝突を避ける必要がある <li>構造体の定義の先読みも行う必要がある <li>Plan Aと比較すると実装が難しいかも </ul> </div> <div class='slide'> <ul> <li>最初に全体を読み込むのが良い <ul> <li>コードセグメントが大量に定義されることを考えるとその都度その都度探しに行くのは手間 <li>Aに比べると時間がかかるというだけでBも大して難しくはないはず </ul> </ul> </div> </div> <!-- presentation --> </body> </html>