JavaScript đã biên dịch
Javascript nổi tiếng với các nhà phát triển vì nhiều ưu điểm, tính năng của nó. Vì vậy, loạt bài này nhằm liệt kê và giải thích từng tính năng của ngôn ngữ lập trình này Show
Vì vậy, trong bài viết này, chúng ta hãy tìm hiểu tại sao JavaScript được biên dịch, biên dịch JIT(Just In Time) & nó có nghĩa là gì? Biên dịch là gìBiên dịch là một quá trình chuyển đổi mã nguồn chương trình thành mã nhị phân mà máy có thể đọc được trước khi thực thi. Hầu hết các ngôn ngữ chương trình hiện đại đều sử dụng mô hình này để gửi gói ứng dụng để thực thi chúng tại máy của người dùng cuối. Điều này giúp tăng hiệu suất ứng dụng vì mã được trình biên dịch tối ưu hóa cho nền tảng của người dùng cuối Tuy nhiên, với mô hình này, mỗi chương trình cần một quy trình biên dịch khác nhau cho các nền tảng khác nhau do những thay đổi cơ bản của chúng trong tập lệnh CPU. Bạn có thể đã quan sát thấy khi muốn cài đặt một ứng dụng cho máy của mình, bạn cần tìm một ứng dụng có thể cài đặt cụ thể cho HĐH, phần cứng, v.v. Thông dịch viên là gìTrình thông dịch là một chương trình thực thi các hướng dẫn của chương trình mà không yêu cầu chúng phải được biên dịch trước thành định dạng mà máy có thể đọc được
Với mã được giải thích khi đang di chuyển, việc thực thi có thể được bắt đầu ngay lập tức. Vì mã được biên dịch nhanh chóng nên nó không cần phải được xây dựng riêng cho bất kỳ nền tảng, hướng dẫn nào và làm cho nó trở thành trải nghiệm phân phối tuyệt vời cho các nhà phát triển Vì mã không được biên dịch, mã được giải thích sẽ không có bất kỳ tối ưu hóa nào được thực hiện trước khi thực thi mã JavaScript là một phiên dịch, biên dịch JITNhư chúng tôi đã quan sát, Trình biên dịch đảm bảo rằng mã đã biên dịch được tối ưu hóa để thực thi nhanh hơn & Trình thông dịch đảm bảo rằng việc thực thi mã có thể ngay lập tức đảm bảo khởi động nhanh hơn Vì vậy, các công cụ JavaScript được thiết kế để tận dụng tốt nhất cả hai cách tiếp cận và phát triển mô hình Biên dịch Just In Time (JIT). JavaScript có thể được mô tả là cả ngôn ngữ được biên dịch và thông dịch nhưng việc triển khai thực tế khác nhau đối với từng công cụ Một số động cơ phổ biến được liệt kê dưới đây
Một số bước chính trong việc thực thi Javascript như sau,
Hy vọng nó đã giúp bạn hiểu tại sao Javascript được gọi là phiên dịch hoặc Biên dịch JIT. Hãy chia sẻ suy nghĩ của bạn Theo dõi tôi để có thêm các bài viết thú vị về JavaScript và Phát triển Web. Ngoài ra, vui lòng theo dõi trên Twitter Thêm nội dung bằng tiếng Anh. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Nhận quyền truy cập độc quyền để viết các cơ hội và lời khuyên trong cộng đồng của chúng tôi Discord Vì vậy, bạn nghĩ rằng JavaScript được giải thích? . Đây là lý do tại saohình ảnh từ fossbytes. comTất cả chúng ta đều biết câu hỏi phổ biến mà mọi lập trình viên phải hỏi về ngôn ngữ lập trình mà anh ta học - nó được biên dịch hay thông dịch Trước tiên hãy xác định ý nghĩa của từng ý nghĩa đó Biên soạn vs. Diễn dịchCó rất nhiều thông tin về từng quy trình đó nên tôi sẽ giữ cho nó đơn giản Ngôn ngữ biên dịch — tệp nguồn thường sẽ được “biên dịch” thành mã máy (hoặc mã byte) trước khi được thực thi Ngôn ngữ thông dịch — mã nguồn sẽ được đọc và thực thi trực tiếp, từng dòng một Và giống như mọi thứ trong cuộc sống, tôi thực sự tin rằng bạn có thể hiểu rõ hơn bằng rượu Giả sử bạn muốn làm Mojito, bạn truy cập Google (hoặc Bing nếu bạn là người lập dị) và tìm kiếm danh sách nguyên liệu, đây là kết quả bạn nghĩ ra · Nước cốt của 1 quả chanh Có 2 cách để pha cocktail, cách Biên dịch hoặc Thông dịch viên Trước tiên, người pha chế sẽ sắp xếp tất cả các nguyên liệu trước mặt anh ta, trước khi thực hiện bất kỳ pha trộn nào, số lượng cụ thể của từng nguyên liệu riêng lẻ, chỉ sau đó, anh ta mới trộn tất cả các thành phần sẵn có của ly cocktail Thông dịch viên sẽ cầm ly của mình và bắt đầu đọc thành phần, từng dòng một. anh ta sẽ đi đến tủ lạnh của mình và lấy một quả chanh, cắt nó và vắt trực tiếp vào ly, sau đó rót rượu rum trắng, v.v. Thời gian xây dựng (chuẩn bị) của trình biên dịch sẽ lâu hơn các trình thông dịch. tuy nhiên, thời gian chạy (trộn) sẽ ngắn hơn nhiều Bây giờ bạn đã biết sự khác biệt, hãy nói về JavaScript Vì vậy - JavaScript được biên dịch hoặc giải thíchChà, giống như nhiều bạn, khi tôi bắt đầu học JavaScript, tôi đã được cho biết rằng JavaScript - giống như hầu hết các ngôn ngữ kịch bản là một ngôn ngữ được giải thích và tôi đã sống với giả định này trong hòa bình Đọc đoạn sau được xuất bản tại web. standford. giáo dục
Theo hầu hết internet, JavaScript là một ngôn ngữ được giải thích, nhưng điều đó không nhất thiết đúng Ví dụ: công cụ V8, công cụ chạy Google Chrome và NodeJS, biên dịch thành mã gốc bên trong
Ngoài ra, Rhino và TraceMonkey sử dụng quá trình biên dịch như một phần của quy trình của họ
Ví dụ, nhìn vào chương trình này console.log('Hippity Hoppity'); Về lý thuyết, một trình thông dịch sẽ đọc dòng đầu tiên, in ra “Hippity Hoppity” và chỉ sau đó đưa ra Lỗi Cú pháp Nhưng đối với môi trường thời gian chạy của JavaScript hiện đại thì không phải như vậy, ngay sau khi chạy chương trình, trước khi thực hiện chức năng ghi nhật ký, nó đã bị treo Một ví dụ khác là Hoisting, xem xét max(1, 2); Làm cách nào để công cụ JS biết về Hàm 'max' trước khi nó "đạt" đến mức giảm tốc? Vì vậy, JavaScript là một ngôn ngữ được biên dịch, phải không?Chà, nó phức tạp. trước đây, mọi ngôn ngữ lập trình đều khá dễ phân loại thành ngôn ngữ này hay ngôn ngữ kia, nhưng cách tiếp cận hiện đại để chạy mã nguồn đã tạo ra một loại khu vực “ở giữa” Tất nhiên, kết quả của quá trình biên dịch không thể di chuyển giữa các công cụ JS khác nhau. Ngoài ra, JS không được biên dịch trước, giống như ngôn ngữ biên dịch truyền thống. Tuy nhiên, các công cụ JS hiện đại thực hiện các bước tương tự như các trình biên dịch khác Xem xét dòng chảy của một chương trình 1. Mã nguồn được biên dịch (Babel) và đóng gói (Webpack) 2. Công cụ JS phân tích mã thành Cây cú pháp trừu tượng (AST) 3. Công cụ chuyển đổi AST đó thành một loại mã byte, sau đó được trình biên dịch JIT chuyển đổi hơn nữa 4. JS VM thực thi chương trình Một số người sẽ lập luận rằng máy ảo JS đang “thông dịch” “mã byte”, nhưng nếu bạn nói như vậy thì bạn cũng nói rằng Java (một ngôn ngữ dựa trên JVM khác) cũng được thông dịch Cái giếng?. Nó được biên dịch sau đó?Câu trả lời gần như có hơn là không, nhưng đó là vấn đề về quan điểm và cách thực hiện, tôi đoán vậy Tôi thực sự khuyên bạn nên tiếp tục khám phá chủ đề này và cho tôi biết suy nghĩ của bạn trong phần bình luận Và lần tới khi bạn đứng trước một Người phỏng vấn và anh ấy hỏi bạn câu hỏi này - chỉ cần nói với anh ấy rằng bạn đã biên soạn, giải thích về bản thân và sau đó đưa cho anh ấy liên kết đến bài viết này Có cách nào để biên dịch JavaScript không?Có liên quan. Nhiều ngôn ngữ lập trình yêu cầu trình biên dịch để biên dịch chúng thành mã mà máy có thể đọc được, nhưng Trình duyệt web có thể đọc JavaScript mà không cần trình biên dịch . Tuy nhiên, trình biên dịch JavaScript có thể tối ưu hóa mã JavaScript của bạn và tạo mã cải tiến.
JavaScript có được biên dịch trong Nodejs không?Nút. js sử dụng V8 và nó biên dịch JavaScript thành một chiến lược tối ưu hóa . Vì vậy, JavaScript chạy ở phía máy chủ thông qua nút.
JS có được biên dịch sang C++ không?Chương trình JS được biên dịch bằng mã C++ (V8) và cuối cùng trở thành mã máy. |