Đây là lệnh js_of_ocaml có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
js_of_ocaml - OCaml bytecode sang trình biên dịch Javascript
MÔ TẢ
js_of_ocaml(1) là một trình biên dịch từ các chương trình OCaml bytecode sang Javascript. Nó làm cho nó
có thể viết các chương trình OCaml chạy trên trình duyệt web.
Nó đi kèm với các ràng buộc cho một phần lớn các API của trình duyệt và các chương trình được tạo
đã được đo lường để thường chạy nhanh hơn trình thông dịch bytecode OCaml.
SỬ DỤNG
Chương trình của bạn trước tiên phải được biên dịch bằng trình biên dịch OCaml bytecode ocamlc(1).
Các liên kết Javascript, cũng như một phần mở rộng cú pháp tương ứng, được cung cấp bởi
js_of_ocaml Gói.
ocamlfind ocamlc -gói js_of_ocaml -gói js_of_ocaml.syntax \
-cú pháp camlp4o -linkpkg -o input_file.byte input_file.ml
Sau đó, chạy js_of_ocaml(1) trình biên dịch để tạo ra mã Javascript.
js_of_ocaml [ lựa chọn ] input_file.byte
LỰA CHỌN
Các tùy chọn dòng lệnh sau được nhận dạng bởi js_of_ocaml(1).
-gỡ lỗi tên
mô-đun gỡ lỗi tên
-vô hiệu hóa tên
vô hiệu hóa tối ưu hóa tên
-đẹp
in đầu ra đẹp
-debugthông tin
thông tin gỡ lỗi đầu ra
-noinline
vô hiệu hóa nội tuyến
-noruntime
không bao gồm thời gian chạy tiêu chuẩn
-người
biên dịch một toplevel
-I dir Thêm dir vào danh sách các thư mục bao gồm
-o hồ sơ
đặt tên tệp đầu ra thành hồ sơ
-Cứu giúp Hiển thị danh sách các tùy chọn
--Cứu giúp Hiển thị danh sách các tùy chọn
TÍNH NĂNG, ĐẶC ĐIỂM, GIỚI HẠN
Toàn bộ thư viện tiêu chuẩn OCaml phải được hỗ trợ, ngoại trừ các kênh đầu vào / đầu ra,
tham chiếu yếu và hầu hết các chức năng của mô-đun Sys. Các thư viện bổ sung như Bigarray,
Unix, Thread hoặc Str không được hỗ trợ.
Cuộc gọi đuôi nói chung không được tối ưu hóa. Tuy nhiên, các hàm tự đệ quy (khi đuôi
các cuộc gọi đến chính hàm) được biên dịch thành một vòng lặp.
Mô-đun đệ quy không được hỗ trợ tại thời điểm này.
Biểu diễn dữ liệu khác với biểu diễn thông thường, vì lý do hiệu suất. Đáng chú ý nhất,
số nguyên là 32 bit (thay vì 31 hoặc 63 bit) và float không được đóng hộp. Kết quả là,
các hàm sắp xếp, so sánh đa hình và hàm băm có thể mang lại kết quả khác nhau
hơn bình thường:
· Điều phối phao không được hỗ trợ (công việc dỡ bỏ);
· Hàm băm đa hình sẽ không cho kết quả giống nhau về cấu trúc dữ liệu
chứa phao;
· Các hàm này có thể dễ bị tràn ngăn xếp hơn, vì ngăn xếp Javascript nhỏ.
Sử dụng js_of_ocaml trực tuyến bằng các dịch vụ onworks.net