More Related Content More from Hiroki Mizuno (17) どこでもCoq6. def mult
lambda{|n|lambda{|m|match(n,[:O,
lambda{[:O,[]]}],
[:S, lambda{|p|
plus[m][mult[p][m]]}])}}
end
def fact
lambda{|n|match(n,[:O, lambda{[:S,[[:O,
[]]]]}],
[:S, lambda{|m|mult[n]
[fact[m]]}])}
end
6
11. どこにでもあるものとは
空気
http://www.flickr.com/photos/ivyfield/4731067716/
10
12. どこにでもあるものとは
空気 インターネット
http://www.flickr.com/photos/ivyfield/4731067716/
10
13. どこにでもあるものとは
空気 インターネット iPhone
http://www.flickr.com/photos/ivyfield/4731067716/
10
14. どこにでもあるものとは
空気 インターネット iPhone
http://www.flickr.com/photos/ivyfield/4731067716/
10
20. OCamlの特徴
二種類のコンパイラ:
!
‣ バイトコードコンパイラとネイティブコー
ドコンパイラ
各種アーキテクチャに対応
‣ IA32, PowerPC, AMD64, Alpha, Sparc,
Mips, IA64, HPPA, Arm
14
24. Objective-Cとの連携
• Cの関数はFFI経由で相互に呼び出
せる
let _ = Callback.register "eval" eval;;
int ret =
caml_callback(*caml_named_value("eval"),
caml_copy_string(s));
17
32. インターネットもあるじゃ
ん
http://www.flickr.com/photos/ivyfield/4731067716/
24
33. インターネットもあるじゃ
ん
空気
http://www.flickr.com/photos/ivyfield/4731067716/
24
34. インターネットもあるじゃ
ん
空気 インターネット
http://www.flickr.com/photos/ivyfield/4731067716/
24
35. インターネットもあるじゃ
ん
空気 インターネット iPhone
http://www.flickr.com/photos/ivyfield/4731067716/
24
36. インターネットもあるじゃ
ん
空気 インターネット iPhone
http://www.flickr.com/photos/ivyfield/4731067716/
24
37. インタネットといえば
Javascript
Coq + js_of_ocaml = Coq on JS
25
Editor's Notes \n おしらせ。\n・ProofGeneralさんがかわいらしくなりました。\n・うしろでシールくばってるのでもらってください。\n \n \n \n oh...\n \n まあ最初の選択肢はこれですね。\nたった53円でどこでも証明できる!\nやったね!\n ぐぬぬ\n \n \n \n \n ・ごぞんじの通りCoqはOCamlで書かれています。\n・OCamlの特徴は2種類のコンパイラがあること、各種アーキテクチャに対応していること\n・Armに対応してる!!\n おっとApple様はObjectiveC以外を許可していないぜ\n ぐぬぬ\n \n \n 偉大なる先人\nCがちっちゃい気がするけど、たぶん気のせい\n このうちバイトコードインタプリタはocamlrunのコードをXcodeにD&DしてやればOK\nただバイトコード版のCoqは通常生成されないのでちょっと工夫が必要。\n そのあたりは適当にコンパイルオプションをいじってやります。\nあとobj cとの連携はffiつかいます。\n ぐぬぬ\n \n \n \n \n \n \n \n \n \n js_of_ocaml使えばCoq on Javascriptが実現できるんじゃね?\n \n \n \n 期待の星,node.js\nonlyとは...\nsyntaxとは...\n ぐぬぬ\n \n