Javascript được biên dịch hay một ngôn ngữ diễn giải? [đóng cửa]


151

Javascript có thể được gọi là một ngôn ngữ thông dịch thuần túy? Hoặc nó cũng có một số hương vị biên dịch cho nó? Ai đó có thể hướng dẫn tại các lý do đằng sau cả hai điều nào là đúng.


31
Vui lòng xem xét thêm một bình luận khi bỏ phiếu xuống để câu hỏi có thể được cải thiện. Cảm ơn.
netemp

2
@Blindy: bạn có đề cập rằng sự khác biệt giữa biên dịch và giải thích không nên có ở đó không?
netemp

23
5 downvote, và thậm chí không một bình luận nào trích dẫn rằng tại sao downvote lại ở đó. Một chút thất vọng.
netemp

1
Nó có thể là một cách phổ biến để phân loại các ngôn ngữ, nhưng điều đó không làm cho nó trở nên hữu ích hơn.

1
@NetEmp (lưu ý tôi chưa được đánh giá thấp - nhưng đã bỏ phiếu để di chuyển sang lập trình viên) Đây là nơi sai khi đặt loại câu hỏi này - đọc Câu hỏi thường gặp về câu hỏi nào ở đây - đây phải là phần lập trình của StackExchange
Manse

Câu trả lời:


72

Đi và đọc câu trả lời cho câu hỏi này

/software/138521/is-javascript-interprave-by-design

Câu trả lời tôi chấp nhận là tuyệt vời và sẽ giúp trả lời câu hỏi của bạn.

Đối với cá nhân tôi, tôi hơi thận trọng với ý tưởng gọi một ngôn ngữ được giải thích hoặc biên dịch. Đó là một quyết định thực hiện, không phải là một phần của đặc tả ngôn ngữ. Nếu bạn muốn nói về JavaScript được biên dịch hoặc giải thích, hãy hỏi nó trong bối cảnh triển khai thực tế của đặc tả ngôn ngữ.


19

JavaScript được diễn giải trong thời gian chạy bởi trình duyệt máy khách. Tuy nhiên, có một công cụ gọi là Trình biên dịch JavaScript Rhino được cho là biên dịch JavaScript thành các tệp lớp Java.


7
V8 và tương tự thì sao?

25
V8 chưa bao giờ bao gồm bất cứ thứ gì như trình thông dịch và hầu hết các công cụ JS chính đều có trình biên dịch JIT. Do đó, nói rằng "JavaScript được diễn giải" rõ ràng là sai (hoặc có thể định nghĩa của bạn về trình thông dịch / trình biên dịch là).

@delnan: Cảm ơn sự hiểu biết sâu sắc về V8. Do đó, JS không phải là một ngôn ngữ hoàn toàn được giải thích.
netemp

2
Trình biên dịch JavaScript tê giác. Bạn biết đấy, nếu bạn muốn ngôn ngữ được diễn giải của bạn được diễn giải bằng một ngôn ngữ được dịch khác.
Trevor Hickey

1
Như những người khác đã nói, điều này đã không còn đúng trong một thời gian nữa. Vâng, trong những ngày đầu bạn có thể nói Javascript đã được diễn giải, nhưng nó đã đi một chặng đường rất dài kể từ đó.
John Weisz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.