Để sử dụng với một lớp học tôi sẽ dạy, tôi đang tìm kiếm trình biên dịch nhanh hoặc trình thông dịch bytecode cho Standard ML. Tôi đang tìm thời gian biên dịch nhanh; mọi thời gian chạy hợp lý sẽ thực hiện. Tiền thưởng nếu mô hình biên dịch đơn giản và rõ ràng. Sinh viên trong lớp cũng sẽ sử dụng MLton để tạo ra các tệp nhị phân tốt, nhưng MLton chậm biên dịch và có những lúc sinh viên cần một thứ gì đó mà họ có thể tương tác.Trình biên dịch ML chuẩn hoặc trình biên dịch bytecode, với vòng lặp đọc-eval-in, cho Linux?
Dưới đây là những gì tôi biết đã:
Standard ML New Jersey có một tương tác đọc eval-print-loop, nhưng quy tắc biên soạn của nó là một chút lạ, và đó là một chút chậm. Tuy nhiên, nó có thể là ứng cử viên hàng đầu.
Moscow ML từng là lý tưởng, nhưng nó vẫn chưa được cập nhật với Thư viện cơ sở tiêu chuẩn năm 2004. Đáng tiếc nhất, bởi vì ngoài nhiều tính chất tốt khác của nó, Moscow ML cũng có một hệ thống trợ giúp tương tác — nhưng tôi không thể gây ra cho sinh viên một trình biên dịch có thư viện làm điều gì đó khác với tất cả các tài liệu trực tuyến nói.
Poly/ML có thể phù hợp với hóa đơn, ngoại trừ việc xem tài liệu trực tuyến, tôi không thể tìm ra cách để biên dịch. Điều đó có thể được.
Hiện tại có vẻ như SML/NJ hoặc Poly/ML sẽ là thỏa hiệp tốt nhất. Đã nhiều năm trôi qua kể từ khi tôi thực hiện bất kỳ công việc nghiêm túc nào trong Standard ML và tôi sẽ chào đón thông tin về các trình biên dịch khác hoặc các giải pháp thay thế này, theo kinh nghiệm của bạn, nhanh nhất để tương tác và dễ học nhất.
Tôi không gặp khó khăn khi biên dịch Poly/ML; Tôi vừa cài đặt gói Debian. Đó là "một hệ thống biên dịch khác" mà tôi đang gặp khó khăn trong việc tìm ra. Tôi rất muốn các sinh viên có thể sử dụng một mô hình mà họ quen thuộc với --- biên dịch nguồn để có được một nhị phân thực thi --- nhưng với một cái gì đó nhanh hơn một chút so với MLton. Có lẽ tôi nên tải về HaMLet và xem cách Makefile được thiết lập. +1 –
Cả hai HaMLet và MLton (và Isabelle AFAICT) đều điều khiển Poly/ML thông qua chức năng 'use'. Tôi không biết bất kỳ dự án nào (ngoài chính Poly/ML) sử dụng cơ sở PolyML.make. Bạn có thể yêu cầu con trỏ trên danh sách gửi thư của Poly/ML; lưu lượng truy cập thấp nhưng đáp ứng. –
Isabelle/ML sử dụng cấu trúc PolyML.Compiler rất thuận tiện để triển khai biến thể 'sử dụng' của riêng nó, sao cho hiệu ứng trên môi trường ML được quản lý nội bộ, ví dụ: để cho phép hoàn tác/khôi phục môi trường tĩnh. – Makarius