view slides/20150203/slide.html @ 125:00f4dd1d2e55

auto-Update generated slides by script
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Tue, 28 Jun 2016 18:27: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>Categorical Formalization of Program Modification</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">Categorical Formalization of Program Modification</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:29 +0900 with Markdown engine kramdown (1.9.0)
                  using options {}
  -->

<!-- _S9SLIDE_ -->
<h1 id="categorical-formalization">研究目的 (Categorical Formalization)</h1>
<ul>
  <li>プログラムの信頼性を向上させるために開発手法に着目する</li>
  <li>プログラムの信頼性が変化するのはプログラムを変更した時である</li>
  <li>信頼性を保ちながらプログラムを変更にプログラムの変更を形式化する</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="parallel-debugger">研究目的 (Parallel Debugger)</h1>
<ul>
  <li>本研究では Monad を用いてプログラムの変更を定義する</li>
  <li>Monad とは meta computation とデータ構造を対応付ける手法である</li>
  <li>プログラムの変更は変更前の動作を保存しつつ変更後の動作を追加することで表現する</li>
  <li>異なるバージョンのプログラムを同時に実行し、トレースを比較することでデバッグを支援する手法を提案する</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="section">近況報告</h1>
<ul>
  <li>DeltaM の Monad の証明できました</li>
  <li>卒論の目次を一旦書いてみました</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="delta-">Delta の証明</h1>
<ul>
  <li>Delta の定義をちょっと変えました
    <ul>
      <li>全ての Delta が同じバージョンを持つ</li>
      <li>無限の変更は対応しています</li>
    </ul>
  </li>
  <li>record で書いてるのは Category の Monad 則です
    <ul>
      <li>Natural Transformation(eta, mu), unity-law, association-law</li>
      <li>bind は無し</li>
    </ul>
  </li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="deltam-">DeltaM の証明</h1>
<ul>
  <li>全ての Delta のバージョンが1以上かつ同じであれば DeltaM も Monad でもある
    <ul>
      <li>中の Monad は Functor と Monad である必要がある</li>
      <li>preserve-id, covariant, natural termination of eta and mu, unity-law, association-law</li>
    </ul>
  </li>
  <li>変更数は無限です
    <ul>
      <li>若干 Functor に証明を追加しました</li>
    </ul>
  </li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="fmap-equiv">fmap-equiv</h1>
<ul>
  <li>fmap する function が refl でも変換できない</li>
  <li>fmap-equiv として Functor の record に関数変換用の法則を追加
    <ul>
      <li>fmap-equiv : (f == g) -&gt; (fmap f x == fmap g x)</li>
      <li>Relation.Binary.PropositionalEquality に cong-app があるので良いかと判断</li>
      <li>cong-app : (f == g) -&gt; f x == g x</li>
    </ul>
  </li>
  <li>higher-order function の equivalence ってあります?</li>
</ul>


</div>
<div class='slide '>
<!-- _S9SLIDE_ -->
<h1 id="tips">tips</h1>
<ul>
  <li>DeltaM は実際 Delta (M A) の wrapper</li>
  <li>constructor は 1 つなので isomorphic に対応する
    <ul>
      <li>外す処理が必須でした</li>
    </ul>
  </li>
  <li>mu を実行する時は一旦外して Deltaのmu, Inner Monad のmu</li>
  <li>termination checking を回避するためになるべく展開しておいた方が良かった</li>
  <li>Monad を合成する処理を Monad として書いてる感じが</li>
</ul>

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


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