2012-05-12 25 views
5

Dart chạy trong Dart VM của riêng mình, nhưng bạn có thể biên dịch nó thành JavaScript được tối ưu hóa hiện đại. Nhưng nó hoạt động như thế nào? Có bài báo hay bài báo trực tuyến nào giải thích quy trình đó không?Trình biên dịch javascript phi tiêu (dart2js) hoạt động như thế nào?

Tôi tự hỏi nếu đó là một yếu tố phù hợp về phía trước dễ dàng với phần tử, chỉ tốn thời gian để phát triển, xử lý hoặc có một số yếu tố/khía cạnh của Dart mà không thể được biên dịch sang JavaScript.

http://www.dartlang.org

EDIT: thx cho 2 câu trả lời của bạn. Vấn đề là, tôi đã nói với một đồng nghiệp của tôi về phi tiêu và phi tiêu đó có thể được biên dịch sang JavaScript. Ông chấp nhận rằng nó có thể được biên dịch sang JavaScript nhưng nó sẽ dẫn đến mã mumbojumba và sẽ chỉ làm việc cho các công cụ đơn giản. Cuối cùng anh ấy nói: '' 'ok, giải thích cho tôi. biên dịch này sẽ hoạt động như thế nào trên mã không độc quyền? '' '

Đó là lý do tại sao tôi hỏi. Tôi đã hy vọng rằng có một số tài liệu trực tuyến tôi có thể liên kết anh ta.

Trả lời

4

Trình chỉnh sửa Dart giờ đây sẽ biên dịch mã Phi tiêu của bạn thành JavaScript với dart2js.

Đối với phần thứ hai của câu hỏi của bạn, thư viện io: io chỉ dành cho máy chủ/dòng lệnh, vì vậy chúng không thể được biên dịch bằng dart2j.

Tôi nhận ra bây giờ tôi nghĩ rằng bạn đang yêu cầu "làm thế nào mà các kỹ sư thiết kế và thực hiện các trình biên dịch dart2js", không phải "làm thế nào để bạn chạy dart2js"

Dưới đây là một bài viết trên blog về việc công bố dart2js: http://news.dartlang.org/2012/05/new-dart-to-javascript-compiler-ready.html

Kasper Lund, một trong những kỹ sư, cho biết thêm: "Về mặt kỹ thuật, tôi có thể nói với bạn rằng trình biên dịch mới sử dụng một biểu diễn bên trong dạng SSA (gán đơn tĩnh) và trình biên dịch được triển khai hoàn toàn bằng Dart."

Mã nguồn có tại http://code.google.com/p/dart/source/browse/#svn%2Fbranches%2Fbleeding_edge%2Fdart%2Flib%2Fcompiler%2Fimplementation

1

Có bất kỳ bài viết hoặc giấy tờ trực tuyến mà giải thích rằng quá trình?

Mặt trước là trình phân tích cú pháp gốc được cuộn bằng tay và trình phân tích cú pháp đệ quy của bạn. Phần cuối là, tôi tin rằng đang thực hiện một loạt suy luận kiểu (vì chú thích kiểu Dart quá lỏng lẻo để cho phép bạn phân tích kiểu tĩnh đáng tin cậy từ chúng và ngữ nghĩa thời gian chạy không cho phép bạn chú thích loại nghiêm túc). Nếu bạn tìm kiếm các bài báo về "suy luận kiểu bê tông", tôi tin rằng bạn sẽ tìm thấy một số tài liệu bạn đang tìm kiếm. Ngoài ra, bất kỳ tài liệu tham khảo về biên dịch để hình thức SSA (và làm mã gen từ hình thức đó, tôi giả định) nên giúp đỡ.

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