Mercurial > hg > Members > kaito > slides
changeset 16:b9fe22215900
update slide
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 05 Mar 2015 19:33:36 +0900 |
parents | ddc8ec20ed6e |
children | 358bb29b5c98 |
files | s6/2015_03_03.html s6/2015_03_10.html |
diffstat | 2 files changed, 176 insertions(+), 156 deletions(-) [+] |
line wrap: on
line diff
--- a/s6/2015_03_03.html Tue Mar 03 18:20:35 2015 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -<!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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/s6/2015_03_10.html Thu Mar 05 19:33:36 2015 +0900 @@ -0,0 +1,176 @@ +<!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> + + <div class='slide'> + <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 class='slide'> + <h3>こういう手順でいけるはず</h3> + <ul> + <li>パーサーがファイルを開く度に先に解析を始める + <li>グローバル領域の構造体宣言を解析する + <ul> + <li>何らかの方法で二度宣言されないようにしないといけない + </ul> + <li>__codeを目印にプロトタイプを生成する + <ul> + <li>プロトタイプ宣言ならそのまま解析 + <li>そうじゃないなら内部で置き換えて解析 + </ul> + <li>事前解析を終えたら通常の構文解析に移る + <li>解析済み構造体に当たった場合は何らかの形でそれを無視 + <li>コードセグメントのプロトタイプに当たった時はそれは解析済みなのでStatementを破棄して飛ばす + </ul> + </div> + + </div> <!-- presentation --> + </body> +</html>