Coq for Moblie Phone @ ML名古屋

1,164 views
1,072 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,164
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • さて、みなさまに近況報告があります。\n新しいiPadを買いました!!(ここでiPadをみせびらかす)\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Coq for Moblie Phone @ ML名古屋

    1. 1. Coq for MobiLe Phone みずぴー/mzp 1
    2. 2. 自己紹介• みずぴー / mzp• 関数型言語が好きです• 所属勉強会: なごやかScala, ProofCafe, スター トSML# 2
    3. 3. 近況報告• 新しいiPadを買いました!!
    4. 4. mzpの日常 その他 Twitterコーディング Tumblr
    5. 5. mzpの日常 その他 Twitterコーディング ←iPadでOK Tumblr
    6. 6. iPadでコーディングしたい• そうだ、処理系を移植しよう• ちょっとしたコーディングならiPadでも可能 • ワンライナーの開発 • 関数定義の確認• AppStoreの規約とかは後で考えよう..
    7. 7. mzpの主要言語• Ruby/Rails• Scala• SML#• OCaml• Coq
    8. 8. mzpの主要言語• Ruby/Rails ∼移植する言語の条件∼ 1.ARMで動作する• Scala• SML#• OCaml• Coq
    9. 9. mzpの主要言語• Ruby/Rails ∼移植する言語の条件∼ 1.ARMで動作する• Scala 2.省メモリ• SML#• OCaml• Coq
    10. 10. mzpの主要言語• Ruby/Rails ∼移植する言語の条件∼ 1.ARMで動作する• Scala 2.省メモリ 3.まだやってない• SML#• OCaml• Coq
    11. 11. Coqとは• 関数型プログラミング言語• プログラムの性質を証明できる• 様々な言語に変換可能: OCaml, Haskell, Scheme, Scala, Ruby 詳しくは: プログラミング Coq ∼ 絶対にバグのないプログラムの書き方 ∼ http://www.iij-ii.co.jp/lab/techdoc/coqt/ 11
    12. 12. Coqの特徴• マイナーだしAppleの審査をくぐり抜けそう• チューリング完全じゃないしね• OCaml製なので移植が楽(な気がした) 12
    13. 13. Coq for iOSの構成 CoqUIとか バイトコードインタプリタ iOS 13
    14. 14. バイトコードインタプリタの移植• C言語(とインラインアセンブラ)で書かれてる• 「コンパイラのレジスタ割り当てとかクソ」• ARM向けのマクロを有効にして、Xcodeに突っ込んだ 参考: OCaml for iOS http://code.google.com/p/ocaml-for-ios/wiki/ 14
    15. 15. バイトコード版Coq • コンパイルオプションをいじって、ビルドした • Cの関数はFFI経由で相互に呼び出せるlet _ = Callback.register "eval" eval;;int ret = caml_callback(*caml_named_value("eval"), caml_copy_string(s)); 15
    16. 16. デモ 16
    17. 17. まとめCoq for iPhoneによって開けた世界• どこでも証明できるようになった!!• OCaml製のプログラムなら何でも移植できる • iOSのUI付きで• Androidもたぶん大丈夫 17

    ×