Mercurial > hg > Papers > 2015 > atton-sigse
view slide/slide.html @ 51:6972867ea8f4
Mini fixes
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 21 Jan 2015 17:26:23 +0900 |
parents | ba3003b56804 |
children | 780eab85e724 |
line wrap: on
line source
<!DOCTYPE HTML> <html lang="Japanese"> <head> <title>形式手法を広めるには</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="河野真治 <br> 比嘉健太"> <link rel="stylesheet" href="themes/ribbon/styles/style.css"> <link rel="stylesheet" href="slide.css"> </head> <body class="list"> <header class="caption"> <h1>形式手法を広めるには</h1> <p>河野真治 <br> 比嘉健太</p> </header> <div class="slide cover" id="Cover"><div> <section> <header> <h2>形式手法を広めるには</h2> <h3 id="author">河野真治 <br> 比嘉健太</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="agenda">Agenda</h1> </header> <!-- === begin markdown block === generated by markdown 1.1.1 on Ruby 2.2.0 (2014-12-25) [x86_64-darwin13] on 2015-01-21 17:26:16 +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="section">講義で紹介する形式手法</h1> </header> <!-- _S9SLIDE_ --> <ul> <li>model checking 的なアプローチ</li> <li>証明的なアプローチ</li> </ul> </section> </div></div> <div class="slide" id="4"><div> <section> <header> <h1 id="model-checking-">model checking 的なアプローチ</h1> </header> <!-- _S9SLIDE_ --> <ul> <li>Operationg System の講義</li> <li>Process/Thread Scheduling を考えた時に</li> <li>Dead Lock を起こすような Scheduling を実際に書いて実行させる</li> <li>Java Path Finder で Thread の実行順序を網羅的に実行する</li> </ul> </section> </div></div> <div class="slide" id="5"><div> <section> <header> <h1 id="section-1">証明的なアプローチ</h1> </header> <!-- _S9SLIDE_ --> <ul> <li>ソフトウェア工学 の講義</li> <li>集合, 論理, 関数, 自然演繹による証明</li> <li>型システム, Curry-Howard Isomorphism を通して Haskell, Agda で証明</li> <li>Haskell : 自然演繹と lambda calculus</li> <li>Agda : Data type に対する証明 (Product, Sum, List, Functor, Monad …)</li> <li>Agda : SystemT を使った自然数に対する演算の証明</li> </ul> </section> </div></div> <div class="slide" id="6"><div> <section> <header> <h1 id="agda-">Agda による証明を解説した例</h1> </header> <!-- _S9SLIDE_ --> <ul> <li>Open Source Conference</li> <li>ソフトウェア工学で学んだ Agda の使い方を発表</li> <li>Agda で SystemT の Nat の加法の交換法則を解説</li> <li>ほとんどが定義の解説に時間を取られてしまう</li> </ul> </section> </div></div> <div class="slide" id="7"><div> <section> <header> <h1 id="section-2">圏によるプログラムの形式化</h1> </header> <!-- _S9SLIDE_ --> <ul> <li>プログラムの変更を Monad で表す</li> <li>プログラムの変更時に変更前のプログラムも残したまま変更する</li> <li>全てのバージョンのプログラムを同時に実行できる</li> <li>デバッグやテストと組み合せることでバグ</li> <li>実行系と検証系を同時に走らせることもできる</li> </ul> </section> </div></div> <div class="slide" id="8"><div> <section> <header> <h1 id="section-3">学習コスト</h1> </header> <!-- _S9SLIDE_ --> <ul> <li>論理, 自然演繹 -> Haskell -> Agda</li> <li>それぞれのステップに壁がある</li> <li>自然演繹では解けるけれど lambda term で書き直す</li> <li>Haskell では定義できるけれど Agda で証明できない</li> </ul> </section> </div></div> <div class="slide" id="9"><div> <section> <header> <h1 id="section-4">つまづくポイント</h1> </header> <!-- _S9SLIDE_ --> <ul> <li>Haskell -> Agda の壁を考える</li> <li>コードを書いてる人なら型を合わせることは分かる</li> <li>型によって証明を書くことに繋げるには? <ul> <li>プログラムと論理の対応を把握してもらう必要がある</li> <li>どうしたら把握してもらえるか?</li> </ul> </li> </ul> </section> </div></div> <div class="slide" id="10"><div> <section> <header> <h1 id="section-5">つまづきをどう解決するか</h1> </header> <!-- _S9SLIDE_ --> <ul> <li>書き続ける</li> <li>論理とプログラムの対応を見えるようにする <ul> <li>Agda は対話的に項を書き換えることができる</li> <li>どこでつまづいても情報が手に入るようにしたい</li> <li>対話的に情報を引き出す手段そのものを学ぶ</li> </ul> </li> </ul> <style> .slide.cover H2 { margin-top:72px; font-size:72px; } .slide.cover H3#author { margin-top:72px; font-size:42px; } </style> <!-- 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>