証明駆動開発のたのしみ@名古屋reject会議
Upcoming SlideShare
Loading in...5
×
 

証明駆動開発のたのしみ@名古屋reject会議

on

  • 4,455 views

 

Statistics

Views

Total Views
4,455
Views on SlideShare
2,846
Embed Views
1,609

Actions

Likes
1
Downloads
7
Comments
1

6 Embeds 1,609

http://d.hatena.ne.jp 1600
https://twitter.com 3
http://webcache.googleusercontent.com 2
http://paper.li 2
http://twitter.com 1
http://threadic.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • ブランチ分けるのが自然ってのがいいなー.と思う感じ.
    これは証明駆動だけじゃなくて,try and error んときは普通.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

証明駆動開発のたのしみ@名古屋reject会議 証明駆動開発のたのしみ@名古屋reject会議 Presentation Transcript

  • The fun of proof driven development @mzp / Reject 1
  • ( )• @mzp /••• 2
  • Reject ↓ Ruby Ruby@Dominion525 3
  • Ruby 4
  • Ruby• Coq to Ruby 4
  • Ruby• Coq to Ruby• Git 4
  • Ruby• Coq to Ruby• Git• Perl 4
  • • Reject Coq to Ruby• Reject 5
  • @mzp / Reject 6
  • ( )‘‘ Coq Merge Sort - http://d.hatena.ne.jp/yoshihiro503/20090923/p1 7
  • MessagePack• @frsyuki•• (Java,C++,Ruby, Python,Perl,Haskell)• RPC OCaml 8
  • • •• • Base64 • • Coq 9
  • MessagePack for OCaml•• https://github.com/mzp/msgpack-ocaml• 10
  • 11
  • 12
  • Coq(* *)Infix "@@" := atat (right associativity, at level 75).(* *)Notation "[ ]" := nil : list_scope.(* ( : [1; 2; 3]) (!) *)Notation "[ a ; .. ; b ]" := (a :: .. (b :: []) ..) : list_scope. 13
  • TDD• TDD =• Coq = = !• 14
  • • :• : Twitter • Twitter Coq 15
  • • 2 3 • 255 int -> uchar uchar->int• Coq Anarchy Proof( ) 16
  • : Scala 17
  • 18
  • ••• !• 19
  • • !•• 20
  • •• :• : OCaml 21
  • The darkside of the Proof Driven Development 22
  • Coq < Check 5001.Warning: Stack overflow or segmentation fault happens whenworking with largenumbers in nat (observed threshold may vary from 5000 to70000 depending onyour system limits and on the command executed).5001 : nat 23
  • ?• nat • Inductive nat : Set := O (* 0 *) | S (_ : nat) (* 1 *) 24
  • • MessagePack 2^n(* : 2^n * 2^m = 2^(n+m) *)Lemma pow_add: forall n m, pow n * pow m = pow (n + m). 25
  • Definition Soundness obj1 x := forall obj2, Serialized obj1 x -> Serialized obj2 x -> Valid obj1 -> Valid obj2 -> obj1 = obj2. • 26
  • CI• (CI)• (1GB ) • VPS orz • Coq on EC2 27
  • • MessagePack for OCaml 2• 4000 ↓ 2 28
  • • MessagePack for OCaml•“ ”• 29