2009-10-08 25 views
16

Tôi đã xem xét một số ngôn ngữ mới cho JVM. Hai trong số họ đang thu hút nhiều sự quan tâm trong những ngày này: Clojure và Scala. Nhưng theo quan điểm khiêm tốn của tôi, cả hai đều không lý tưởng. (Hãy giữ cho nó là một suy đoán, vì tôi không muốn làm hỏng bản thân mình khi thảo luận ..)OCaml dành cho JVM. Có cái gì không?

Điều tôi thực sự thấy là một động thái phức tạp là phát minh của MS - F #. Đơn giản chỉ cần di chuyển ngôn ngữ OCaml sang nền tảng .NET.

Câu hỏi đặt ra là: Có ai đó quản lý để viết trình biên dịch OCaml đầy đủ tính năng cho JVM không? Bạn sẽ nói gì nếu đó là một ý tưởng hay?

Trả lời

13

"OCaml and Java" có liên kết đến các nỗ lực khác nhau để tích hợp Java với OCaml.

F # hơi khác với OCaml ở khía cạnh do mong muốn có nó hoạt động với .NET framework. Vì vậy, nhiều như Scala là một ngôn ngữ lai, như vậy là F #, bạn có thể chọn và chọn FP muốn và bao nhiêu OOP bạn muốn, bằng một trong hai ngôn ngữ.

"Java, OCaml, and F#" là bài đăng của người nào đó đang cố gắng chuyển từ Java sang OCaml mà bạn có thể thấy thú vị.

+0

Cảm ơn, James. Tôi không biết rằng F # không sao chép OCaml. – Bubba88

+0

Chúng rất giống nhau, và nếu bạn cẩn thận nguồn OCaml của bạn sẽ hoạt động trong F #, nhưng chúng mở rộng F # cho .NET. –

+0

chỉ vì tôi tò mò, trong trường hợp nào mã ocaml không hoạt động như F #? – LB40

11

Làm thế nào về Cafesterol: http://cafesterol.x9c.fr/

Cafesterol là một phần mở rộng của Objective CAML biên dịch bộ mà tạo ra Java bytecode. Cafesterol cung cấp một trình biên dịch ocamljava là đối tác Java của các trình biên dịch ocamlc/ocamlopt được phân phối với phân phối tiêu chuẩn Caml mục tiêu. Cafesterol, trong phiên bản 1.3 được xây dựng với phiên bản 3.11.1 của mục tiêu Caml. Các lớp Java được sản xuất cần phiên bản 1.3 của Cadmium để chạy và có thể được thực thi trên bất kỳ máy ảo Java 1.6 nào.

+0

Mục nhập lịch sử cuối cùng là "Phiên bản 1.4 (2010-02-06)"; _; –

4

Yeti là (trong khi cú pháp khác nhau và mở rộng cho tích hợp Java) trong cả cấu trúc và hệ thống kiểu dựa trên ML như Ocaml. Bởi vì sự hỗ trợ mạnh mẽ của nó đối với các loại bản ghi (đệ quy), tôi nghĩ rằng nó hiện là một trong những cái gần với Ocaml nhất.

Sắp xếp F # cho JVM.

http://mth.github.com/yeti/

2

Ocaml-Java là càng gần đến một "chính thức" OCaml cho JVM như bạn có thể nhận được. Nó có vẻ là chất lượng rất cao.

(Ngoài ra, Haskell cho JVM: Frege)

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