Haskellのコードは理由なく遅くならないし、遅いなら理由があるので取り除けば速くなる。長年の経験上GHCにはそれぐらいの信頼はおけます。
2011-04-11 04:04:25Lispェ・・・ FAV @ponkotuy 前Pythonistaで、吐くバイナリの命令数最も短いと、Lispをガチで勧めてた人が居たw
2011-04-11 04:06:43結局、ネイティブコンパイルしたなら生成されるのは機械語なんだから、機械語にフィットする言語のほうが速いのは当然な気がする。 そういった意味で、C言語から離れていくほど遅くなるんじゃ・・・。
2011-04-11 04:08:21@repeatedly Haskell2010の標準ライブラリですね。これが激遅というより、そもそもリストをC++の配列の置き換えとして使うと激遅になるというのはわかりますよね…?
2011-04-11 04:09:23最適化の幅は機械語に近いほうが狭くなりますにゃ。 RT @a_mute: 結局、ネイティブコンパイルしたなら生成されるのは機械語なんだから、機械語にフィットする言語のほうが速いのは当然な気がする。 そういった意味で、C言語から離れていくほど遅くなるんじゃ・・・。
2011-04-11 04:09:31なるほどなー RT @SubaruG: 最適化の幅は機械語に近いほうが狭くなりますにゃ。 RT @a_mute: 結局、ネイティブコンパイルしたなら生成されるのは機械語なんだから、機械語にフィットする言語のほうが速いのは当然な気がする。 そういった意味で、C言語から離れていくほど
2011-04-11 04:10:22なるほど・・・最適化をコンパイラ任せにしたら、確かにそうなりますね FAV @SubaruG 最適化の幅は機械語に近いほうが狭くなりますにゃ。
2011-04-11 04:10:42ただまあ、Haskellでも抽象性と効率を両立させるのは未だに難しいわけなので、まだコンパイル技術は発展する余地はありますね。そこが究極の目標です。SuperCompilationがその間をある程度埋めてくれると思うのだけど、実用化はいつごろになるだろう。
2011-04-11 04:11:33@tanakh よく使われている言語ならどれでも遅くなるなら理由があるし、取り除けば速くなる気が。。。問題は理由がどれだけ探しやすいかと、取り除きやすいか、では?
2011-04-11 04:14:27@tanakh とりあえず、去年の Simon Peyton Jones と Max の方の論文の改善版 http://j.mp/fumen7 https://github.com/batterseapower/chsc/tree/chsc2
2011-04-11 04:17:44Haskell さんはやればできる子だということが分かった。Haskell の基本操作がリストだから、基本がvectorなC++と比べて遅いと感じてしまうってことがあるってことなのかな。
2011-04-11 04:19:10今Haskellで配列操作するならvectorパッケージ一択です http://hackage.haskell.org/package/vector
2011-04-11 04:20:37@tanakh GitHub の方で見れますが、実験的に GHC に上に実装しようとしている branch がありますね。まだ実装が全然ですけれど。 https://github.com/ghc/ghc/tree/supercompiler
2011-04-11 04:21:23