view slides/20150519/slide.html @ 120:17b4d348dfe6

auto-Update generated slides by script
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Tue, 10 May 2016 18:16:42 +0900
parents d4e4ecc1c347
children
line wrap: on
line source

<!DOCTYPE html>
<html>
<head>
   <meta http-equiv="content-type" content="text/html;charset=utf-8">
   <title>Verification of programs using Code Segments and Data Segments</title>

<meta name="generator" content="Slide Show (S9) v2.5.0 on Ruby 2.3.0 (2015-12-25) [x86_64-darwin14]">
<meta name="author"    content="Yasutaka Higa" >

<!-- style sheet links -->
<link rel="stylesheet" href="s6/themes/projection.css"   media="screen,projection">
<link rel="stylesheet" href="s6/themes/screen.css"       media="screen">
<link rel="stylesheet" href="s6/themes/print.css"        media="print">
<link rel="stylesheet" href="s6/themes/blank.css"        media="screen,projection">

<!-- JS -->
<script src="s6/js/jquery-1.11.3.min.js"></script>
<script src="s6/js/jquery.slideshow.js"></script>
<script src="s6/js/jquery.slideshow.counter.js"></script>
<script src="s6/js/jquery.slideshow.controls.js"></script>
<script src="s6/js/jquery.slideshow.footer.js"></script>
<script src="s6/js/jquery.slideshow.autoplay.js"></script>

<!-- prettify -->
<link rel="stylesheet" href="scripts/prettify.css">
<script src="scripts/prettify.js"></script>

<script>
  $(document).ready( function() {
    Slideshow.init();

    $('code').each(function(_, el) {
      if (!el.classList.contains('noprettyprint')) {
        el.classList.add('prettyprint');
        el.style.display = 'block';
      }
    });
    prettyPrint();
  } );

  
</script>

<!-- Better Browser Banner for Microsoft Internet Explorer (IE) -->
<!--[if IE]>
<script src="s6/js/jquery.microsoft.js"></script>
<![endif]-->



</head>
<body>

<div class="layout">
  <div id="header"></div>
  <div id="footer">
    <div align="right">
      <img src="s6/images/logo.svg" width="200px">
    </div>
  </div>
</div>

<div class="presentation">

  <div class='slide cover'>
    <table width="90%" height="90%" border="0" align="center">
      <tr>
        <td>
          <div align="center">
            <h1><font color="#808db5">Verification of programs using Code Segments and Data Segments</font></h1>
          </div>
        </td>
      </tr>
      <tr>
        <td>
          <div align="left">
            Yasutaka Higa
            
            <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;">
          </div>
        </td>
      </tr>
    </table>
  </div>

<div class='slide '>
<!-- === begin markdown block ===

      generated by markdown/1.2.0 on Ruby 2.3.0 (2015-12-25) [x86_64-darwin14]
                on 2016-03-29 18:58:34 +0900 with Markdown engine kramdown (1.9.0)
                  using options {}
  -->

<!-- _S9SLIDE_ -->
<h1 id="section">研究目的</h1>
<ul>
  <li>コードセグメントとデータセグメントという単位を用いてプログラムを記述する手法を提案する</li>
  <li>プログラムはコードセグメントという処理の集合として表され、相互に接続される</li>
  <li>個々のコードセグメントを検証し、検証されたコードセグメントどうしの組み合わせによりプログラム全体を検証する</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="section-1">研究内容</h1>
<ul>
  <li>コードセグメントとデータセグメントを用いたプログラムに対し、自動で検証する機構を提案する</li>
  <li>検証機構には可能な状態を列挙できるモデルチェッカーや、型システムを用いた証明を用いる</li>
  <li>検証をメタ計算として定義し、通常のプログラムから検証を含んだプログラムを導出する</li>
  <li>メタ計算の形式化には Monad を用い、通常の計算とメタ計算間の一対一対応を保証する</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="section-2">近況報告</h1>
<ul>
  <li>Spin 触ってます
    <ul>
      <li>チュートリアルとかちょろっと</li>
    </ul>
  </li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="spin">Spin</h1>
<ul>
  <li>Promela によって記述されたコードを実行するもの</li>
  <li>Promela は以下のような特徴を持つ
    <ul>
      <li>proc という処理単位を並列に実行する</li>
      <li>boolean condition の assertion によって性質をチェックする</li>
      <li>proc の実行順を列挙することにより、反例などを見付ける</li>
    </ul>
  </li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="statements">Statements</h1>
<ul>
  <li>Promela の構文には2種類の状態がある(executable/blockng)
    <ul>
      <li>代入は always executable</li>
      <li>expression は non-zero の時のみ executable
        <ul>
          <li>flag == 1 と書くと flag が 1 になるまで blocking</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="control-flow">control flow</h1>
<ul>
  <li>if によって実行を分岐できる</li>
</ul>

<pre><code>if
:: condition -&gt; expression
:: condition -&gt; expression
...
fi
</code></pre>

<ul>
  <li>condition が executable なものから non-deterministic に実行される</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="repeat">repeat</h1>
<ul>
  <li>do 構文で if を repeat できる</li>
</ul>

<pre><code>do
:: condition -&gt; expression
:: condition -&gt; expression
...
od
</code></pre>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="assertion">assertion</h1>
<ul>
  <li>assert 構文で boolean の assertion ができます</li>
  <li>assert 構文は always executable</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="channel">channel</h1>
<ul>
  <li>proc 間の messaging
    <ul>
      <li>ほとんど synchironized queue
        <ul>
          <li>FIFO</li>
          <li>block when take from empty queue</li>
          <li>block when put to full queue</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>golang の channel っぽい。</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="section-3">実装周りの話</h1>
<ul>
  <li>状態は vector にしてるっぽいです
    <ul>
      <li>同じ vector は hash に入れてる</li>
    </ul>
  </li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="bibliographies">bibliographies</h1>
<ul>
  <li><a href="http://spinroot.com/spin/Man/">Spin Online References</a></li>
  <li><a href="http://spinroot.com/spin/Doc/SpinTutorial.pdf">Tutorial</a></li>
  <li><a href="http://spinroot.com/spin/Man/Manual.html">Basic Spin Manual</a></li>
</ul>

<!-- vim: set filetype=markdown.slide: -->
<!-- === end markdown block === -->
</div>


</div><!-- presentation -->
</body>
</html>