문제

나는 대학에서 ML 학습을 정말 좋아했습니다. 기능 프로그래밍은 종종 특정 알고리즘을 작성하는 상쾌하게 우아한 방법이라고 생각합니다. 나는 F#에 대해 들었고 조금 놀았습니다. 그럼에도 불구하고 ML에서 흥미로운 기능을 작성했으며 다른 응용 프로그램에서 사용할 수있는 라이브러리로 통합하고 싶습니다.

일반적으로 내 기능을 SMLNJ 통역사에 붙여 넣습니다. 그들을 컴파일 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

당신은 같은 것을 사용해야합니다 MLJ 컴파일러. Java 바이트 코드로 컴파일됩니다. 또는 사용할 수 있습니다 sml.net .NET IL로 컴파일하는 컴파일러.

다른 팁

그것은 일반적으로 일반적입니다 ML 양쪽이 C로 내보내기 위해서는 서로 C 함수를 호출합니다. 거의 모든 것이 '쉽게'내보내기를위한 FFI 라이브러리가 있습니다.

http://www.smlnj.org/doc/smlnj-c/index.html

그래서 외부 세계에 당신의 SML 라이브러리는 자극 된 segfaults 및 memory 누출을 제외하고 C 라이브러리처럼 행동 할 것입니다*

*보증이 아닙니다

프로젝트는 언어를 대중화합니다. ML을 사용하여 흥미롭고 의심 할 여지없이 '멋진'프로젝트를 위해 지상 작업을 수행하면 사람들이 언어로 몰려들 것입니다. 예를 들어, Ejabberd와 Mochiweb와 함께 Erlang을 살펴보십시오. 두 가지 멋진 프로젝트는 Erlang과 같은 일회성 다이아몬드 언어를 위해 놀라운 프로젝트를 보았습니다 (BTW, 최근에 선택한 개발 언어). 나는 누군가가 ML로 무언가를 만드는 것을보고 싶어합니다. 언어는 생각하는 기쁨입니다.

거기 있습니다 여러 표준 ML 컴파일러. MLTON WIKI에는 또한 a가 포함되어 있습니다 기준.

표준 ML을 바이트 코드로 컴파일하는 모스크바 ML을 사용했습니다. 빠르지는 않지만 작동합니다. MLTON은 종종 효율성과 관련하여 최고의 표준 ML 컴파일러로 인용됩니다.

Poly/ML 버전 5 이상은 기존의 "힙 덤프"모델과 C 스타일 독립형 실행 파이브를 모두 지원합니다. 에 대한 문서 폴리/ml 웹 사이트 여러 지점에 퍼져 있으며, 그중 일부는 제목에 정말 오래된 날짜가 있지만 시스템은 살아 있고 차고 있습니다.

객체 코드 생성은 통과 할 때 설명됩니다 릴리즈 노트 버전 5.0 릴리스의 경우 (현재 5.5에 있습니다) : PolyML.export 거기.

최근 일부 GUI 프로젝트에 사용 된대로 개조 된 일부 폴리/ML C 인터페이스도 있습니다. PolyML 메일 링리스트에서 문의해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top