![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@_ko1 @pi8027 単純にがんがんにチューニングした場合どうなるかの話なので、コーディング時間対パフォーマンス比ではOCamlやJavaがいいですよね多分
2011-07-12 03:27:01![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
ocaml-tsukuba 勉強会#1のスライド(自分が書いた物)によると、C と OCaml で素直に N-Queens Solver を書くと、OCaml で書いた物の実行時間が C で書いた物の二倍くらいらしい。
2011-07-12 03:29:19![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@_ko1 Haskellは普通に書くとリストまみれになって配列やハッシュテーブルなどのデータ構造を扱いにくいからという認識。OCamlはもしかしたらそのままつかえるぐらいはやいのかな
2011-07-12 03:32:17![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@_ko1 破壊的変更をあまりしないように書くのが一般的で、そういう書き方をしているのが1つ。あとは GC の有無と、OCaml コンパイラの最適化はあまり賢くないと聞いたのでそれもある気がします。
2011-07-12 03:32:20![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@nyaxt 言語レベルで見えているデータ構造と,それが実際に計算機上でどうリソースを食うのかは,一対一対応する必要はないはず.そうなっているのはなぜか?
2011-07-12 03:34:47![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
Haskell も mutable な物使いまくれば速くなるという噂はあるけど、書き方相当工夫しないとあまり意味が無い気がする。
2011-07-12 03:34:56![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
個人的な疑問としては,「C++並の速度が出ない」というのは,言語の本質的な問題が起因しているのか,そうではなく,最適化をサボっているだけなのか.中をよく知らないので,知っている人に教えて欲しいところ.
2011-07-12 03:36:26![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
プログラミング言語は,使いやすさにフォーカスして進化してきた.というわけで,速度というか,コンパイラに優しい言語,というのを作りたいと,常々思っているのだけど,なかなか進められていない.
2011-07-12 03:38:04![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@_ko1 @nyaxt INRIA は多分、最適化器を作り間違えた結果として処理系にバグを埋め込むような事を避けたいのでしょう。CompCert のように証明付きの最適化器であれば、証明を書けば良いけれど。
2011-07-12 03:38:05![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
さて,コンパイラに優しい言語とは何か,と考えたとき,ぐちゃぐちゃにアノテーションがつきまくった言語なのか,それとも関数型言語のように,primitive からきっちり解析できるようなものになるのか.
2011-07-12 03:40:02![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@_ko1 それはそうですね。C などと同等に速いバイナリを生成できる OCaml 処理系を書く事自体は、可能かもしれません。
2011-07-12 03:41:14