[haskell] JVM의 Haskell?

하스켈을 JVM (컴파일 또는 해석)에서 실행할 수있는 방법이 있는지 궁금합니다.

Sourceforge에 JHaskell이 있지만 이것은 비어 있고 죽은 것처럼 보입니다.

GHC는 LLVM을 컴파일러 백엔드로 사용합니다. LLVM을 Java 바이트 코드로 컴파일하는 것이 좋은 아이디어입니까 아니면 가능합니까? 아니면 다른 컴파일러 백엔드를 사용할까요?



답변

Frege 를 조사 할 수 있습니다 . 해당 페이지에서 인용 :

“Frege는 Haskell의 정신에 따른 엄격하지 않은 순수 함수형 프로그래밍 언어입니다.”

“Frege 프로그램은 Java로 컴파일되고 JVM에서 실행됩니다.”

언어 사양을 간략히 살펴보면 Frege는 거의 Haskell 복제품으로 보입니다. 아마도 “하스켈의 정신으로”라는 문구는 적절한 기대치를 설정하기위한 단순한 의미 일 것입니다.


답변

Haskell은 JVM에서 아름답게 작동합니다. 유형이 안전한 Java interop을 사용하여 전체 GHC 7.10.3 Haskell을 JVM에 제공하는 프로젝트 인 Eta를 참조하십시오 .


답변

JVM에서 haskell에 가까운 유일한 언어는 CAL입니다. CAL은 하스켈을 많이 기반으로하지만 하스켈의 모든 기능을 가지고있는 것은 아닙니다. 유형 시스템은 Haskell 98과 유사하며 do표기법 과 같은 구문 설탕 이 없습니다.

다음은 Haskell과 CAL의 비교입니다 : Haskell 프로그래머를위한 CAL

이클립스 플러그인은 매우 세련되고 유용합니다.

CAL은 Open Quark 프레임 워크의 일부입니다.


답변

JVM에 GHC를 구축하는 데는 크지 만 극복 할 수있는 장애물이 있습니다.

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

(이를 위해 1 ~ 2 년 여유가 있습니까?)


답변