2010-10-09 24 views

Trả lời

14

Trình biên dịch CoffeeScript biên dịch CoffeeScript vào ECMAScript. Vì trình biên dịch CoffeeScript được viết bằng CoffeeScript, nó có thể biên dịch chính nó thành ECMAScript và do đó chạy trong trình duyệt. Các bit và phần cần thiết để hỗ trợ các phần tử <script type='text/coffeescript'> đã được bao gồm trong trình biên dịch CoffeeScript chuẩn.

Nói chung, bất kỳ ngôn ngữ nào có thể được biên dịch thành ECMAScript, tất cả những gì bạn cần là trình biên dịch. Và, kể từ bất kỳ ngôn ngữ thể được biên dịch để ECMAScript, bất kỳ biên dịch thể được biên dịch để ECMAScript, tất cả bạn cần là một trình biên dịch cho ngôn ngữ rằng trình biên dịch được viết bằng.

Điều này dẫn đến một vụ nổ tổ hợp khả năng biên dịch ngôn ngữ trong trình duyệt.

Ví dụ: có người này viết C compilers which target high-level languages để giải trí. Ông có một trình biên dịch biên dịch C sang Java, Perl, Common Lisp, Lua hoặc ECMAScript. Vì vậy, bạn có thể sử dụng trình biên dịch để biên dịch bất kỳ trình biên dịch khác được viết bằng C sang ECMAScript. Và hầu hết các ngôn ngữ có một số trình biên dịch ở đâu đó được viết bằng C.

Đầu mối được viết bằng C. Luận dịch từ C sang ECMAScript. Ergo, bạn có thể sử dụng Clue để biên dịch Clue thành ECMAScript. Sau đó, bạn có thể chạy Clue trong trình duyệt để biên dịch C sang ECMAScript khi đang di chuyển. <script type='text/c'>, bất kỳ ai? (Suy nghĩ thú vị: Node.js được viết bằng C. Hmm & hellip;)

Trên một lưu ý nghiêm trọng hơn: nói chung có ba lý do để biên soạn để ECMAScript:

  1. tái sử dụng
  2. safety
  3. sự biểu thị

Nếu bạn chỉ muốn sử dụng lại mã hiện có được viết bằng ngôn ngữ khác (hoặc hiểu biết hiện có bằng ngôn ngữ khác), sau đó biên dịch/giải thích trên clie nt không có ý nghĩa nhiều. Mã hoặc trình mã hóa không mong đợi để có thể sử dụng các phần tử <script>. Danh mục này bao gồm các nội dung như GWT hoặc Volta.

Nếu (loại) an toàn là mục tiêu của bạn, sau đó biên dịch/giải thích trên máy khách chỉ đơn giản là không hoạt động: làm thế nào bạn có thể đảm bảo an toàn nếu bạn không kiểm soát trình biên dịch? Đó là lý do tại sao Ur/Web, Links, Flapjax, haXe, Caja và biên dịch mã đó trên máy chủ. Họ đảm bảo an toàn bằng cách gõ tĩnh hoặc tích hợp chặt chẽ hoặc cả hai. (Theo tích hợp chặt chẽ, tôi có nghĩa là phụ trợ, giao diện người dùng và ứng dụng được kết nối chặt chẽ, ví dụ:chỉ định cấu trúc dữ liệu một lần và sau đó tạo các biểu mẫu SQL, ECMAScript và HTML tương ứng từ nguồn đơn đó để đảm bảo rằng tất cả chúng đều khớp với nhau. Cần phải rõ ràng lý do tại sao điều này đòi hỏi phải xử lý trên máy chủ.)

Những người tập trung vào tính biểu cảm, tuy nhiên, được sử dụng để thay thế cho ECMAScript, tức là bên trong <script> yếu tố, và do đó họ thường đi kèm với thông dịch viên và/hoặc các trình biên dịch chạy trên máy khách. CoffeeScript, Objective-JClamato nằm trong danh mục này.

+0

Wow, đó là ... thú vị. Bật hai Tylenol. – UnkwnTech

+0

Câu trả lời rất hay! Và tôi sẽ phải thử một số CoffeeScript. –

0

Ngoài các danh sách này có một chỉ số ở đây: http://altjs.org/ trong đó có:

  • Ngôn ngữ mới
  • cải tiến
  • Javascript
  • cổng (Java, C, Ruby, vv)

và hơn thế nữa

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