web-dev-qa-db-ja.com

ブラウザーで実行するコードを作成するための、最も生産レベルのHaskell to JavaScriptコンパイラーは何ですか?

私は、10年の実績を持つ、必ずしも超堅牢なソリューションを探しているのではなく、実際のアプリケーションで使用でき、Hello Worldの例を実行できるだけではありません。

私の好みは、コンパイラーをサーバー上で実行することです。これにより、Haskellコードを事前にコンパイルできます。もちろん、ソリューションは単なるコンパイラではなく、Haskellコードがブラウザで利用可能なAPI(DOM、XHR…)にアクセスできるようにする必要があります。

脚注:これまでに見たプロジェクトは積極的に維持されていないようで、「Hello world」を実行できないだけの場合や、場合によってはプロジェクトの説明を超えている場合もあります。

55
avernet

ここにもっと完全なリストがあります:

http://www.haskell.org/haskellwiki/The_JavaScript_Problem

フェイもあります(ただし、haskellのサブセットにすぎません)

https://github.com/faylang/fay

16
Dve

このリストは便利な場合があります: https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-c​​ompile-to-JS

リストから:

* UHC (Utrecht Haskell Compiler) backend converts UHC core to JavaScript, allowing the compiling of Haskell code to JS.
* YHC (York Haskell Compiler) backend, as above but with YHC core language.
* jshaskell

Haskellではありませんが、Coffeeスクリプトは式ベースで、かなりエレガントなIMHOです。

9
Adam Gent

GHCJSは積極的にメンテナンスされていないようですが、 Emscripten はかなり最新のようです。

  • EmscriptenはJavaScriptに [〜#〜] llvm [〜#〜] ビットコードをコンパイルします。
  • GHCのLLVMバックエンド は積極的に開発されているようです。
  • 直観的に、質問に答えるために、次のパイプラインは「本番品質」からそれほど遠くないかもしれません:Haskell語彙素(-> GHC->)LLVM語彙素(-> Emscripten->)JavaScript語彙素

これは投機的な投稿であることを認めます。

8
jerng

ghcjs と呼ばれるこのプロジェクトを偶然見つけました

有望そうです!

READMEからの引用:

HaskellからJavascriptへのトランスレータ

プロジェクトは、ソリューションを提供することを目的としています

  • 最新のHaskellライブラリをJavascriptファイルにコンパイルして、Ajaxアプリケーションで使用するか、
  • haskell言語でAjaxアプリケーション全体を開発する

以前のバージョンのプロジェクトは vir.mskhug.r にあります。

8
Rotsor

この言語Royは、実際にはHaskell(?)ではないかもしれませんが、非常によく似ています。

http://roy.brianmckenna.org/

ロイは生きているようだ。 GitHubリポジトリには多くのフォークがあります: https://github.com/pufuwozu/roy
そしてそれは生きているようです: https://github.com/pufuwozu/roy/graphs


Play Framework 2.0を使用している場合は、Play Framework 2.0でRoyを実行するためのプラグインRayがあります。

http://brianmckenna.org/blog/ray
https://github.com/pufuwozu/ray

最後のコミットは4か月前でしたが、Play Framework 2がおそらく4か5か月前にリリースされたことを覚えておくとかなり前です。

2
KajMagnus

Yesodからの「最も生産レベル」の候補のリストがあります: https://github.com/yesodweb/yesod/wiki/Javascript-Options (Yesodは非常に人気のあるHaskellウェブフレームワークなので、彼らは知っているかもしれません彼らが話していること)

0