Coqによる証明駆動開発

4,676 views

Published on

わんくま同盟 名古屋勉強会 #16 http://www.wankuma.com/seminar/20110115nagoya16/Default.aspx で使う予定だったスライド。 証明駆動開発の簡単な紹介。じゃっかんTDDにケンカを売ってる:)

Published in: Technology

Coqによる証明駆動開発

  1. 1. Coq @mzp 2011/01/15 #16 1
  2. 2. • mzp( )• SE•• http://twitter.com/mzp 2
  3. 3. ‘‘ Coq Merge Sort - http://d.hatena.ne.jp/yoshihiro503/20090923/p1 3
  4. 4. ?4
  5. 5. • : Base64• encode ,decode : encode "abc" # => “YWJj” decode "YWJj" # => “abc• encode decode 5
  6. 6. TDD : Test::Unit / Rubyassert_equal "foo", decode(encode("foo"))assert_equal "bar", decode(encode("bar"))assert_equal "baz", decode(encode("baz")) • • 6
  7. 7. QucikCheck • : QuickCheck / Haskellprop :: String -> Boolprop s = s == decode (encode s)-- 100main = quickCheck prop • 7
  8. 8. • Goal forall ( s : string), s = decode (encode s).•• 8
  9. 9. Coq• OCaml / F#•• OCaml,Haskell,Scheme, (Ruby, Clojure) 9
  10. 10. Coq in Real world• Unison • • Coq• OCamltter: https://github.com/yoshihiro503/ocamltter • Twitter• MessagePack for OCaml: https://github.com/mzp/msgpack-ocaml • OCaml MessagePack 10
  11. 11. • TDD• Coq• Coq 11
  12. 12. Ruby / Reject• 2011/2/26( ) @• Ruby / Reject• 12

×