タグ

ブックマーク / keigoi.hatenadiary.org (4)

  • OCamlと順序付き線形型で効率のよいXML処理 (to be continued) - keigoiの日記

    この記事は OCaml Advent Calendar 2012 の 24日目の記事です。 が、実際にアップロードしたのは2013年1月18日です。 当はもっと実用的なネタを書く予定だったのですが、飽きた ので、いっそ思い切り趣味に走った記事を書くことにしました。 追記: 動作するものを github にアップロードしました。 https://github.com/keigoi/olt_ocaml 追記:ちゃんと書きませんでしたが、OCamlによるXML処理ができる実装が既に著者らによって公開されています。 http://www.fos.kuis.kyoto-u.ac.jp/~ksuenaga/x-p/ 順序付き線形型とXML(木) 児玉・末永・小林による この論文 (日語の文献) は、XMLなどの木構造を再帰的にトラバースするプログラムを、より効率のよいストリーム処理プログラムに変換

    OCamlと順序付き線形型で効率のよいXML処理 (to be continued) - keigoiの日記
    tarao
    tarao 2013/01/20
  • 最強OCamlでセッション型を実現 - keigoiの日記

    この記事は OCaml Advent Calendar 2012 の 18日目の記事です。 OCamlでセッション型を実装した、というお話です。ちょっと時間がないので簡潔に書いています。 ソースはこちら セッション型 セッション型とは: 通信チャネルの型です プライベートな二者間のメッセージ送受信が整合していることを保証してくれます。(定義によっては多者間) 例えば let thread1 () = send c "Hello"; send c 123 という関数は文字列と整数をチャネルcに送るが (send c vはチャネルcに値vを送るプリミティブとする。以下同様)、 let thread2_bad () = let i = recv c in let j = recv c in print_int (i+j) は整数を2つチャネルcで受けるため(recv cはcで受信した値を返す)、

    最強OCamlでセッション型を実現 - keigoiの日記
  • OCamlコードをCoqで検証できる "CFML" で 証明コンペに挑戦 (未完) - keigoiの日記

    VSTTE 2012 Software Verification Competition というソフトウェア検証のコンペがあった。参加はオープンで、問題文もPDFで配布されている。 id:yoshihiro503 がチームtebasakiというチームでがんばっていた。僕はCoqに慣れていなかったのでチームに入るのは見送った(というかチームの人数上限4人で入れなかった)。 仕事や出張の片手間でやっていたので、結局一問も検証できなかったけど、楽しかった。 検証にはCFMLというツールを勉強しながら使った。 これを使えば OCaml のソースコードを Coq で検証できる。 それも ref型による破壊的代入つきの手続き的なOCamlを含む。 そして Coqと違い、プログラムは停止しなくてもいい。 つまり、CFMLを使えば、 手続き型プログラムを、ホーア論理+分離論理(のようなもの;後述)を使って

    OCamlコードをCoqで検証できる "CFML" で 証明コンペに挑戦 (未完) - keigoiの日記
  • ocamljs を使おう : OCamlからJavaScriptへの変換 - keigoiの日記

    ocamljs は OCamlから JavaScript へのトランスレータだ。前回の記事と順番が逆になってしまったけれど今回はocamljsについて書く (基的に http://jaked.github.com/ocamljs/ 以外のことは書いてないです。)。 JavaScript歴史的経緯とその簡潔さからwebブラウザで使われているが,静的型付けでないので信頼性の面でいまいち不安だったり、言語の使いやすさの面でもパターンマッチの構文が無いとか、まともなモジュールシステムがないとかで良くない。 ocamljsを使えば、比較的安全・簡潔に大規模かつ動的なwebページを構成できるかもしれない。 ocamljsは残念ながらまだ成熟しているとはいえないが、実は既にすごく高機能だ。 現バージョンで既に DOM や jQuery を OCaml から操作できるし、いざとなれば JavaScri

    ocamljs を使おう : OCamlからJavaScriptへの変換 - keigoiの日記
  • 1