81 votes

Haskell sur JVM ?

Je me demande s'il existe un moyen de faire fonctionner Haskell sur la JVM (compilé ou interprété) ?

Il existe JHaskell sur Sourceforge mais celui-ci semble être vide et mort.

GHC utilise LLVM comme compilateur de base. Serait-ce une bonne idée ou possible de compiler LLVM en bytecode Java ? Ou peut-être utiliser un autre compilateur ?

78voto

Daniel Pratt Points 8151

Vous pourriez vouloir enquêter Frege . Citation de cette page :

"Frege est un langage de programmation fonctionnel pur et non strict, dans l'esprit de Haskell."

"Les programmes de Frege sont compilés en Java et exécutés dans une JVM."

Sur la base d'une brève lecture des spécifications du langage, Frege semble être presque un clone de Haskell. Peut-être que la phrase "dans l'esprit de Haskell" est simplement destinée à créer une attente appropriée.

28voto

rahulmutt Points 406

Haskell fonctionne parfaitement sur la JVM. Voir Eta GHC 7.10.3 Haskell, un projet qui apporte la totalité de GHC 7.10.3 Haskell sur la JVM avec une interopérabilité Java sécurisée au niveau des types.

11voto

islon Points 524

Le seul langage que je connais qui est proche de haskell dans la JVM est le CAL. CAL est fortement basé sur haskell mais il n'a pas toutes les caractéristiques de haskell. Le système de type est similaire à Haskell 98, et les sucres syntaxiques comme do La notation est manquante.

Voici une comparaison entre Haskell et CAL : CAL pour les programmeurs Haskell

Le plugin eclipse est très abouti et utile.

Notez que CAL fait partie du cadre Open Quark.

9voto

amindfv Points 4668

Il y a des obstacles importants mais surmontables à la construction de GHC sur la JVM :

http://www.haskell.org/haskellwiki/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F

(Vous avez une année ou deux de libre pour y arriver ?)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X