5

Tôi thực sự thích học ML tại trường đại học. Tôi tìm thấy lập trình chức năng thường là một cách thanh lịch mới mẻ để viết các thuật toán nhất định. Tôi đã nghe nói về F # và chơi xung quanh với điều đó một chút. Tuy nhiên, tôi đã viết một số chức năng thú vị trong ML và muốn tích hợp chúng thành các thư viện mà tôi có thể sử dụng trong các ứng dụng khác.Sử dụng ML trong các ứng dụng "Thế giới thực"

Thông thường tôi dán các chức năng của mình vào trình thông dịch SMLnj. Có cách nào tôi có thể biên dịch chúng?

+1

SMLnj cũng có thể biên dịch mã ... tìm CM, trình quản lý biên dịch. (Mặc dù điều này thực sự không giúp tích hợp vào các ứng dụng khác.) – ephemient

Trả lời

5

Bạn sẽ phải sử dụng một cái gì đó như the MLj Compiler. Nó biên dịch sang mã Java Byte. Hoặc bạn có thể sử dụng trình biên dịch SML.NET để biên dịch sang .NET IL.

+0

Đẹp, cả hai trông giống như hai lựa chọn tốt. – Chet

4

Nó phổ biến trong số ML cho cả hai bên để xuất sang C và sau đó gọi cho từng hàm C khác. Chỉ là về tất cả mọi thứ có một thư viện FFI cho 'dễ dàng' xuất khẩu sang C.

http://www.smlnj.org/doc/SMLNJ-C/index.html

như vậy để thế giới bên ngoài thư viện sml của bạn sẽ cư xử giống như một thư viện C trừ trường hợp ra segfaults assiciated và rò rỉ bộ nhớ *

* không đảm bảo

2

Dự án phổ biến ngôn ngữ. Làm nền tảng cho một dự án thú vị và không thể phủ nhận 'mát mẻ' bằng cách sử dụng ML, và mọi người sẽ đổ xô đến ngôn ngữ. Ví dụ, hãy nhìn vào Erlang với ejabberd và mochiweb - cả hai dự án tuyệt vời đã thực hiện điều kỳ diệu cho ngôn ngữ một lần-kim cương-trong-thô như erlang (tức là, btw, ngôn ngữ phát triển của tôi gần đây). Tôi cho một, rất thích nhìn thấy ai đó làm cho một cái gì đó rad với ML, ngôn ngữ là một niềm vui để suy nghĩ với.

2

several Standard ML compilers. Wiki MLton cũng chứa benchmark.

Tôi đã sử dụng Moscow ML để biên dịch Standard ML thành bytecode. Nó không nhanh, nhưng nó hoạt động. MLton thường được coi là trình biên dịch ML tiêu chuẩn tốt nhất về hiệu quả.

0

Lưu ý rằng Poly/ML phiên bản 5 trở lên hỗ trợ cả mô hình "đống kết xuất" truyền thống và các tệp thi hành độc lập kiểu C. Các tài liệu trên Poly/ML website được trải rộng trên nhiều điểm khác nhau, một số trong số đó có ngày thực sự cũ trong tiêu đề - nhưng hệ thống vẫn còn sống và đá.

Tạo mã đối tượng được giải thích khi chuyển qua số release notes cho bản phát hành phiên bản 5.0 (hiện tại chúng tôi đang ở 5.5): xem PolyML.export tại đó.

Ngoài ra còn có một số giao diện Poly/ML C, đã được nâng cấp như được sử dụng cho một số dự án GUI gần đây. Bạn nên hỏi tại danh sách gửi thư polyml.

Các vấn đề liên quan