view slides/20150203/slide.html @ 76:1211e97e1569

auto-Update generated slides by script
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Mon, 27 Apr 2015 18:33:12 +0900
parents a2ea330dd9d4
children d4e4ecc1c347
line wrap: on
line source

<!DOCTYPE HTML>

<html lang="Japanese">
<head>
	<title>Categorical Formalization of Program Modification</title>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=1274, user-scalable=no">
	<meta name="generator" content="Slide Show (S9)">
	<meta name="author" content="Yasutaka Higa">
	<link rel="stylesheet" href="themes/ribbon/styles/style.css">
	<link rel="stylesheet" href="slide.css">
</head>
<body class="list">
	<header class="caption">
		<h1>Categorical Formalization of Program Modification</h1>
		<p>Yasutaka Higa</p>
	</header>
	<div class="slide cover" id="Cover"><div>
		<section>
			<header>
				<h2>Categorical Formalization of Program Modification</h2>
				<h3 id="author">Yasutaka Higa</h3>
				<h3 id="profile"></h3>
			</header>
		</section>
	</div></div>

<!-- todo: add slide.classes to div -->
<!-- todo: create slide id from header? like a slug in blogs? -->

<div class="slide" id="2"><div>
		<section>
			<header>
				<h1 id="categorical-formalization">研究目的 (Categorical Formalization)</h1>
			</header>
			<!-- === begin markdown block ===

      generated by markdown 1.1.1 on Ruby 2.2.0 (2014-12-25) [x86_64-darwin13]
                on 2015-02-03 18:13:41 +0900 with Markdown engine kramdown (1.4.2)
                  using options {}
  -->

<!-- _S9SLIDE_ -->

<ul>
  <li>プログラムの信頼性を向上させるために開発手法に着目する</li>
  <li>プログラムの信頼性が変化するのはプログラムを変更した時である</li>
  <li>信頼性を保ちながらプログラムを変更にプログラムの変更を形式化する</li>
</ul>



		</section>
</div></div>

<div class="slide" id="3"><div>
		<section>
			<header>
				<h1 id="parallel-debugger">研究目的 (Parallel Debugger)</h1>
			</header>
			<!-- _S9SLIDE_ -->

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



		</section>
</div></div>

<div class="slide" id="4"><div>
		<section>
			<header>
				<h1 id="section">近況報告</h1>
			</header>
			<!-- _S9SLIDE_ -->

<ul>
  <li>DeltaM の Monad の証明できました</li>
  <li>卒論の目次を一旦書いてみました</li>
</ul>



		</section>
</div></div>

<div class="slide" id="5"><div>
		<section>
			<header>
				<h1 id="delta-">Delta の証明</h1>
			</header>
			<!-- _S9SLIDE_ -->

<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>



		</section>
</div></div>

<div class="slide" id="6"><div>
		<section>
			<header>
				<h1 id="deltam-">DeltaM の証明</h1>
			</header>
			<!-- _S9SLIDE_ -->

<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>



		</section>
</div></div>

<div class="slide" id="7"><div>
		<section>
			<header>
				<h1 id="fmap-equiv">fmap-equiv</h1>
			</header>
			<!-- _S9SLIDE_ -->

<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>



		</section>
</div></div>

<div class="slide" id="8"><div>
		<section>
			<header>
				<h1 id="tips">tips</h1>
			</header>
			<!-- _S9SLIDE_ -->

<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 === -->

		</section>
</div></div>


	<script src="scripts/script.js"></script>
	<!-- Copyright © 2010–2011 Vadim Makeev, http://pepelsbey.net/ -->
</body>
</html>