タグ

ocamlに関するblanketskyのブックマーク (12)

  • OCamlSpotter を使う - camlspotter’s blog

    インストールについてはこちらを参照してください。 まずパスを設定して動作確認 PREFIX/bin をパスに入れてください。設定方法はシェルによって違うので書きません。 設定を変えてから、 $ ocaml Objective Caml version 3.11.0+ocamlspotter # となっているか確認してね。 なんか書いてみる fib.ml: let rec fib n = match n with | 1 | 2 -> 1, 1 | _ -> let f_1, f_2 = fib (n-1) in f_1 + f_2, f_1 let fib n = fst (fib n) -annot スイッチ付きでコンパイルしてみる: $ ocamlc -annot -c fib.mlfib.cmo, fib.cmi, fim.annot の他に、fib.spot というファイルが出来て

    OCamlSpotter を使う - camlspotter’s blog
  • Obj.magic - flatlineの日記跡地

    そう言えば以前id:namasute0氏の前で Obj.magic の話をしたら,自分で定義する方法を教えてくれた.確かこんな感じ: ux104$ ledit ocaml Objective Caml version 3.09.1 # exception Ex of _ ;; exception Ex of 'a # let mymagic x = try raise (Ex x) with Ex(x) -> x ;; val mymagic : 'a -> 'b = <fun> # print_int (mymagic (1,2));; 121358- : unit = () # print_int (mymagic (1,2));; 112900- : unit = () # print_int (mymagic (1,2));; 104442- : unit = () # print

    Obj.magic - flatlineの日記跡地
  • #006 禁断の Obj - λx. x K S K @はてな

    先日,フランスの XML 関係の研究者と共著する機会があり, 「こっちの方が早いだろ」「いやココを変えればこっちの方が」 「いやいやまだまだ改善できる」だの OCaml のコードで文通をしたりしていたが, そんな中,相手のこの一行に愕然としてしまった. external set_field : 'a -> int -> 'b -> unit = "%obj_set_field" 確かに,効率的な実装を実現するうえで Obj モジュールを使うことはたまにあるが, ここまでやってしまうとは. というわけで,今日は Obj モジュールについて少しだけ触れる. ただし,この記事は Obj モジュールの利用を推奨するものではない.むしろ禁止したい. また,その性質からバージョンによって動作しない可能性も高い. ちなみに,以下のプログラムは 3.09.2 での動作を確認している. 「Not for t

    #006 禁断の Obj - λx. x K S K @はてな
  • omake: OCamlフレンドリーな超強力ビルド ツール - camlspotter’s blog

    omake という make のパチモンみたいなものがある。だが、「おまけ」の癖にこれが素晴らしいツールなのだ。私が仕事でOCamlプログラムを書く時には必ずこれを使う。 念のために言っておくと、OCamlMakefile という、OCaml でよく使う定義を集めた Makefile 集のようなものがあるが、これは omake ではない。omake は超強力 make コマンドだと思ってもらえれば良い。 詳しいチュートリアルを書くつもりはない。それは omake の作者にまかせて、特徴を並べよう: OCamlプログラムをコンパイルする際のルールが既に登録されている。.SUFFIXES: .ml などと書く必要はない。 依存解析が自動かつ強力。依存ルールを書く手間が大幅に減る。 ディレクトリを跨いだプログラムのビルド。依存解析は OMakeroot ファイルの存在するディレクトリを頂点として

    omake: OCamlフレンドリーな超強力ビルド ツール - camlspotter’s blog
  • ocamldebugの調査 - ものぐさ備忘録

    ML言語の一種であるOcamlに付属している、ocamldebugというデバッガについて調べたのでメモ。 かなり間違っている可能性があるので、注意。 gdbライクなCUI break,info,helpコマンド等、gdbを知っている人なら何となく使えるようにコマンド名がつけられてます でも、printコマンドで関数呼び出しや代入が行えないなど*1、gdbと違う点もあるので注意 breakで停止できるのは、eventと呼ばれる箇所でのみ OcamlマニュアルのEventsの項目にeventとなる箇所が書いてある debuggerとdebugeeは別プロセス Unixだと、BSDソケットを使ってプロセス間通信することでdebugee上に存在する変数の値の参照等を行っている。ここらへんは、Javaデバッガの実装に近い 日語の処理関係は、まだ弱いらしい http://www.h2.dion.ne

    ocamldebugの調査 - ものぐさ備忘録
  • Aktuelle News, Schlagzeilen und Berichte aus aller Welt

  • "The Whitespace Thing" for OCaml

    blanketsky
    blanketsky 2008/01/17
    PythonやHaskell的なインデントグルーピングを行うプリプロセッサ
  • 2006-01-19

    そういえばArray.of_listなんてあったな。 % ./camlprog.exe 2.463000 sec 0.111000 sec 0.010000 sec あー。なんなんだろう、これは・・・。200倍だよ200倍。あー・・・。 コンパイラの時なんかはほとんどListをSetのごとく使って処理してしまっていたし、オーダーに気を付ければ特に速度的な問題が起こることもなかった。が、最近はもっぱらHashtblである。なんでもガーガーhashにつっこんでしまうのが楽ちんだ。Hashtblモジュールにはhash関数という、どんなオブジェクトからも自由にハッシュ値を計算してくれる('a -> int)な便利な関数があるわけで、ここまで来ると何も考える必要はない。 それはさておき、最近どうしても速度が速くなってくれない部分があって、どうしたものかどうしたものかと思い悩んでいた。どうもとことん調

    2006-01-19
  • 第11回 クロージャによる超軽量並行プロセスの簡単実装法

    最近,ネットの一部で「Erlang」(発音はアーランまたはエアラン)というプログラミング言語が流行している(参考リンク)。Erlangはスウェーデンの通信機器メーカーであるエリクソンにて開発された言語で,エリクソン内部や通信業界はもちろん,Twitter(関連記事)などのオンライン・サービスでも採用されているという。 Erlangの特徴は,複数のプロセスが通信をしながら計算をする「並行プログラミング」を,言語の機能として強力にサポートしていることだ。C言語などの逐次プログラミング言語は,プロセスや通信の機能を内蔵しておらず,こうした機能をオペレーティング・システムに「外注」している。しかし,そのような外付けの仕組みは,メモリー消費量や速度,開発効率などの点でオーバーへッドが大きい。Erlangのような並行プログラミング言語では,プロセスや通信といった機能をプリミティブとして実装することによ

    第11回 クロージャによる超軽量並行プロセスの簡単実装法
  • Camlp4 チュートリアル

    Daniel de Rauglaudre 氏による Camlp4 - Tutrial を向井が勝手に訳したものです(9/23 2003版)。 訳の指摘などは mukai@jmuk.org まで。 1. 導入 Camlp4 は OCaml 用のプリプロセッサだ。プリプロセッサとして、 OCaml プログラムの構文拡張ができる。といっても、 Camlp4 は他にもさまざまな特徴を持っている。 文法構造 quotationsと呼ばれるマクロ OCaml用の改訂版構文 OCamlプログラムの pretty printing システム さらに: 拡張可能な関数、関数型ストリーム、 etc... Camlp4 は構文と構文、それに構文だ。構文拡張をするために独自の構文シ ステムを使う。しかも自力でそれをやっている。 Camlp4 は構文レベルでとど まる。意味論とか、型とか、コード生成とかは知ったこ

  • http://osp2007.janestcapital.com/2007/01/24/caml-summer-project-launches/

    blanketsky
    blanketsky 2007/03/05
    締切りは 3/15
  • 私的 OCaml - 兼雑記

    http://d.hatena.ne.jp/shibacho/20050601/p7 id:shibachoさんとこなどを見て、私的に OCaml に思うところを。(以下完全に私見というか、私に OCaml がどう見えているか、です。) OCaml は素晴らしい言語だと思います。私的にはちょっと、完璧すぎる。まず、とりまく環境から。 安定感。コンパイラのバグなどあまり無さそう。なんかエライ人が数学的にどうこうらすい、っていう安心感。 高速。 OCaml のせいで遅い、と感じたことはありませんし、各種ベンチマークも高得点です。 デバッグなど。普通にできます。 プロファイルなど。普通に gprof でできてしまいます。 OCamlMakefile がちょっと便利すぎる。 (参考までに tello の Makefile の簡潔さを見てくださいませ) タダものじゃないプリプロセッサ、camlp4。

    私的 OCaml - 兼雑記
  • 1