Chủ Đề Javascript Là Ngôn Ngữ Thông Dịch Hay Biên Dịch, Javascript Là Ngôn Ngữ Thông Dịch Hay Biên Dịch

Tổng quátTổng quátCó 2 cụm từ mà tất cả chúng ta hay nhắc đến khi nói về một ngôn ngữ lập trình là biên dịch ( compiled ) và thông dịch ( interpreted ). 2 cụm từ này miêu tả cho phương pháp mà máy tính hoàn toàn có thể hiểu được những gì tất cả chúng ta viết và thực thi nó .

Bạn đang xem: Javascript

Ngôn ngữ thông dịch

Ngôn ngữ được coi là thông dịch khi chương trình được viết ra khi chạy sẽ được trực tiếp thành mã máy ( ngôn ngữ mà máy tính hoàn toàn có thể hiểu được ) để máy tính thực thi chúng. Khi chương trình chạy đến dòng lệnh nào sẽ chuyển thành mã máy đến đó để máy tính hoàn toàn có thể thực thi .Bộ thông dịch triển khai quy trình thông dịch gọi là interpreter .

Ưu điểm

Interpreter dễ hiện thực hơn do bỏ qua việc kiểm tra lỗi và tối ưu code thường được thực hiện trong quá trình compiled.Hỗ trợ đa nền tảng.Kích thước chương trình thực thi nhỏ hơn.Interpreter dễ hiện thực hơn do bỏ lỡ việc kiểm tra lỗi và tối ưu code thường được thực thi trong quy trình compiled. Hỗ trợ đa nền tảng. Kích thước chương trình thực thi nhỏ hơn .

Nhược điểm

Chương trình có độ tin cậy thấp hơn do bỏ qua bước kiểm tra loại bỏ một số lỗi thường thực hiện trong quá trình compiled.Source code dễ dàng bị dịch ngược.Tốc độ thực thi chậm hơn.Tiềm tàng nguy cơ có lỗi do thiếu

Ngôn ngữ biên dịch

Chương trình có độ an toàn và đáng tin cậy thấp hơn do bỏ lỡ bước kiểm tra vô hiệu một số ít lỗi thường triển khai trong quy trình compiled. Source code thuận tiện bị dịch ngược. Tốc độ thực thi chậm hơn. Tiềm tàng rủi ro tiềm ẩn có lỗi do thiếuCách hoạt động giải trí của trình biên dịch khác so với thông dịch. Thay vì chạy trực tiếp thành mã máy, trình biên dịch sẽ phải quy đổi ngôn ngữ lập trình thành mã máy rồi chứa tác dụng vào ổ đĩa cứng để hoàn toàn có thể thực thi ở lần chạy sau .Bộ biên dịch thực thi quy trình biên dịch được gọi là compiler .

Ưu điểm

Chương trình sau đó được thực thi nhanh hơn.Độ tin cậy caoKhó bị dịch ngược mã nguồn.Chương trình sau đó được thực thi nhanh hơn. Độ đáng tin cậy caoKhó bị dịch ngược mã nguồn .

Nhược điểm

Khó xây dựng một compiler có tính chính xác cao để chuyển toàn bộ chương trình thành mã máy.Mã máy của mỗi nền tảng là khác nhau, khó thực hiện đa nền tảng.Vậy JavaScript là ngôn ngữ nào?Khó thiết kế xây dựng một compiler có tính đúng mực cao để chuyển hàng loạt chương trình thành mã máy. Mã máy của mỗi nền tảng là khác nhau, khó triển khai đa nền tảng. Vậy JavaScript là ngôn ngữ nào ?Bạn đã mường tượng được JavaScript là ngôn ngữ thông hay biên dịch chưa ? Đây là một câu hỏi mà lúc bấy giờ vẫn còn rất nhiều tranh cãi, đơn thuần vì nhìn từ góc nhìn nào cũng đúng .

JavaScript là ngôn ngữ thông dịch

JavaScript được tạo ra bởi Brendan Eich năm 1995, trong thời gian ông ở Netscape Communications. Cái tên JavaScript hình thành cũng là do ngôn ngữ này lấy cảm hứng từ một ngôn ngữ tên là Java, cùng với đó là 2 ngôn ngữ khác là Scheme và Self.

Xem thêm : Code Style – Php — Intellij IdeaVới ý tưởng sáng tạo là thiết kế xây dựng một ngôn ngữ chạy trên trình duyệt tốt nhất thời đó, Netscape Navigator, JavaScript hoàn toàn có thể chạy, triển khai những cậu lệnh từng dòng một trên trình duyệt mà không cần phải compiled .JavaScript hoàn toàn có thể thao tác trực tiếp với cái câu lệnh HTML, ngay trên web page. Do vậy, một đoạn script tất cả chúng ta viết hoàn toàn có thể tái sử dụng ở nhiều nơi khác nhau .

JavaScript là ngôn ngữ biên dịch

Thế tại sao JavaScript đã là ngôn ngữ thông dịch rồi lại còn là ngôn ngữ biên dịch?

Sau một gian tăng trưởng, người ta nhận thấy ứng dụng của JavaScript quá lớn, nhưng lại chưa có một hiệu suất tốt lắm. Có thể dạo gần đây những bạn nghe nhiều về V8 Engine hay Chakra, nhưng lại không rõ tại sao mọi người tung hô như vậy .

V8 là một engine JavaScript được xây dựng bởi Google. Đây là một engine open source được ứng dụng trong cả Browser (Google Chrome) và Sever Side (NodeJs).

Về cơ bản, V8 chuyển code JavaScript thành mã thay vì dùng interpreter. Engine compile những dòng code trong lúc thực thi bằng việc thực thi trải qua mộtJIT ( Just-In-Time ) compiler. Mình có trích dẫn một đoạn trên Wikipedia về V8 Engine nói rõ về yếu tố này :V8 biên dịch JavaScript trực tiếp sang mã máy trước khi thự thi nó, thay vì những kỹ thuật truyền thống lịch sử khác như giải thuật thông dịch bytecode hoặc biên dịch hàng loạt chương trình sang mã máy và thực thi nó từ một mạng lưới hệ thống tập tin. Mã đã biên dịch được tối ưu hóa bổ trợ ( và được tối ưu hóa lại ) một cách linh động trong thời hạn thực thi, dựa trên những chẩn đoán của hồ sơ thực thi của mã .*

Nhờ V8 Engine,những dòng code JavaScript hiện nay của chúng ta chạy cực kì nhanh. Do tính linh hoạt cộng với việc có sự bổ trợ của V8 Engine, có thể nói rằng chung ta đang sống trong một kỉ nguyên của JavaScript, ngôn ngữ mà gần như có thể thực hiện mọi yêu cầu mà người dùng đòi hỏi.

Tổng kếtTổng kếtVà tất cả chúng ta hoàn toàn có thể thấy, JavaScript khởi đầu là một ngôn ngữ thông dịch nhưng sau một chặng đường dài tăng trưởng và nâng cấp cải tiến, JavaScript mà hiện giờ hoàn toàn có thể được coi là một ngôn ngữ lai, vừa là thông dịch vừa là biên dịch .

Những khái niệm trên trong quá trình lập trình thường không được coi trọng lắm nhưng sẽ hay hơn nếu những người lập trình hiểu rõ hơn một phần nào đó những việc phía dưới máy tính thực hiện sau khi chúng ta viết một chương trình.

Tham khảoTham khảohttps://en.wikipedia.org/wiki/Chrome_V8https://www.quora.com/Is-JavaScript-compiled-or-interpreted-Whats-the-official-stance-from-the-engine-compiler-maintainers