Hướng dẫn what is interpreted language in javascript - ngôn ngữ diễn giải trong javascript là gì

Đăng ký nhận bản tin của tôi và không bao giờ bỏ lỡ các bài viết sắp tới của tôi

Giới thiệu

Là người mới bắt đầu ngôn ngữ lập trình JavaScript, tôi đã phải đối mặt với câu hỏi này rất nhiều lần:

Liệu JavaScript diễn giải mã nguồn, hoặc nó thực sự biên dịch?

Nhiều câu trả lời mà tôi tìm thấy trên internet đã khiến tôi bối rối như,

Từ //giphy.com/

Rất ít bài viết trực tuyến khác, thảo luận, blog đã làm sáng tỏ một số ánh sáng rực rỡ về nó. Tôi nghĩ rằng sẽ tốt hơn nếu đặt nó một cách ngắn gọn và dễ hiểu ở đây.

Đây là bài đầu tiên của bộ truyện, JavaScript: bẻ khóa các đai ốc. Tôi hy vọng bạn thích đọc nó.

JavaScript được giải thích hoặc biên soạn?

Nói chung, JavaScript được phân loại là ngôn ngữ năng động hoặc được giải thích. Có rất nhiều hiểu lầm về thực tế này. Chúng ta cần hỏi và tìm câu trả lời của,

  • Có hoàn toàn công bằng khi nói, JavaScript là một ngôn ngữ được giải thích?
  • Sự khác biệt giữa trình thông dịch và trình biên dịch là gì?

Như đã đề cập trong Wikipedia,

Trình thông dịch là một chương trình máy tính thực hiện trực tiếp các hướng dẫn được viết bằng ngôn ngữ lập trình hoặc kịch bản mà không yêu cầu chúng trước đây phải được biên dịch thành một chương trình ngôn ngữ máy. Nó dịch một tuyên bố tại một thời điểm.

Whereas,

Trình biên dịch là phần mềm máy tính chuyển đổi mã máy tính được viết bằng một ngôn ngữ lập trình [ngôn ngữ nguồn, như JavaScript, v.v.] thành ngôn ngữ lập trình khác [ngôn ngữ đích, như mã máy].

Điều đầu tiên cần hiểu, máy tính không hiểu trực tiếp các ngôn ngữ lập trình. Mỗi ngôn ngữ lập trình đều có cú pháp, ngữ pháp và cấu trúc riêng. Bất kể ngôn ngữ lập trình nào [JavaScript, Python, Java, v.v.] đang viết mã với, nó phải được dịch thành một cái gì đó mà máy [máy tính] hiểu.

Thực tế quan trọng nhất ở đây là, làm thế nào để mã nguồn JavaScript trải qua hành trình trở thành ngôn ngữ có thể hiểu được bằng máy? Công cụ JavaScript thực hiện nhiều bước [trên thực tế, những cách sạch hơn và tinh vi hơn] mà một trình biên dịch điển hình sẽ thực hiện trong việc biên dịch mã nguồn.

Trong JavaScript, mã nguồn thường trải qua các giai đoạn sau khi nó được thực thi,

  • Tokenizing: Chia một chuỗi mã nguồn thành các khối có ý nghĩa được gọi là, Tokens. Ví dụ: mã nguồn VAR Age = 7; có thể được mã hóa như, var, tuổi, =, 7 và,;.: Breaking up a source code string into meaningful chunks called, Tokens. For example, the source code var age = 7; can be tokenize as, var, age, =, 7 and, ;.
  • Phân tích cú pháp: Phân tích cú pháp là một phương pháp để lấy mảng mã thông báo làm đầu vào và biến nó thành một cây các yếu tố lồng nhau được hiểu bởi ngữ pháp của ngôn ngữ lập trình. Cây này được gọi là cây cú pháp trừu tượng [AST].: Parsing is a methodology to take the array of Tokens as input and turn it into a tree of nested elements understood by the grammar of the programming language. This tree is called Abstract Syntax Tree[AST].
  • Tạo mã: Trong giai đoạn này, AST được sử dụng làm đầu vào và mã byte có thể thực thi được tạo ra được hiểu bởi môi trường [hoặc nền tảng] nơi mã thực thi sẽ chạy. Mã byte có thể thực thi sau đó được tinh chỉnh/chuyển đổi hơn nữa bằng trình biên dịch JIT [chỉ trong thời gian] tối ưu hóa.: In this phase, the AST is used as input, and an executable byte-code is generated that is understood by the environment[or platform] where the executable code will be running. The executable byte-code is then refined/converted even further by the optimizing JIT [Just-In-Time] compiler.

"Một bức tranh trị giá ngàn từ". Dưới đây là một đại diện hình ảnh về cách ba giai đoạn này diễn ra:

Các bước tổng hợp mã JavaScript

Bạn có thể sử dụng công cụ AST Explorer để xem cách mã được viết bởi bạn được phân tích cú pháp vào một cây cú pháp trừu tượng [AST].

Được tạo bằng AST Explorer

Sự kết luận

Để kết luận, mã JavaScript thực sự được biên soạn. Nó gần hơn để được biên soạn hơn là giải thích. Nó được biên soạn mỗi lần. Lần tới, nếu ai đó đặt câu hỏi, JavaScript có thực sự biên dịch không? Câu trả lời là một tiếng ồn ào. Sau quá trình compilation tạo ra mã byte nhị phân, JS virtual machine đã thực thi nó.Does JavaScript really Compiles? The answer is a loud YES. After the compilation process produces a binary byte code, the JS virtual machine executes it.

Không giống như các ngôn ngữ lập trình khác như Java, việc biên dịch không diễn ra tại thời điểm xây dựng. Ba giai đoạn được mô tả ở trên không phải là điều duy nhất xảy ra để biên dịch mã nguồn JavaScript. Công cụ JavaScript cần thực hiện nhiều bước tối ưu hóa để giải quyết các vấn đề về hiệu suất.

Là một nhà phát triển, chúng tôi được trừu tượng hóa khỏi tất cả những điều này. Chúng ta sẽ thấy nhiều chủ đề chuyên sâu hơn về JavaScript Engine trong bài đăng trong tương lai của bộ truyện.

Đến lúc rồi. Hãy gọi nó ra, JS là ngôn ngữ được biên dịch.JS is a Compiled Language.

Nguồn

Tài nguyên tôi đề xuất cho chủ đề này là,

  • Bạn chưa biết JS, Chương 1

Đây là một bài đọc tuyệt vời nếu bạn đang tìm kiếm giải thích chi tiết hơn. Bạn có thể bắt đầu đọc trực tiếp từ phần này. Phần yêu thích của tôi từ bài đọc này là,

Vì vậy, các ngôn ngữ "phân tích cú pháp" có điểm chung với các ngôn ngữ "được biên dịch"? Đầu tiên, tất cả các ngôn ngữ biên dịch đều được phân tích cú pháp. Vì vậy, một ngôn ngữ được phân tích phân tích là một cách khá lớn để được biên soạn. Trong lý thuyết tổng hợp cổ điển, bước cuối cùng còn lại sau khi phân tích cú pháp là tạo mã: tạo ra một hình thức thực thi.

Tín dụng

  • Hình ảnh bìa được sử dụng trong bài đăng này được chỉnh sửa trên đầu hình ảnh này từ Freepik

Tôi hy vọng bạn tìm thấy bài viết hữu ích. Hãy thích/chia sẻ để nó cũng tiếp cận người khác. Nếu bạn thích bài viết này hoặc thấy nó hữu ích, hãy kết nối. Bạn có thể tìm thấy tôi trên Twitter [@tapasadhikary] chia sẻ suy nghĩ, mẹo và thực hành mã.

Để nhận thông báo e-mail trên các bài đăng mới nhất của tôi, vui lòng đăng ký vào blog của tôi bằng cách nhấn nút Đăng ký ở đầu trang.Subscribe button at the top of the page.

Trong bài đăng tiếp theo của loạt bài, tôi sẽ giải thích một khái niệm cơ bản khác có tên, bối cảnh thực hiện JavaScript, hơn bao giờ hết! Giữ nguyên.

Ý nghĩa của ngôn ngữ được giải thích là gì?

Ngôn ngữ được giải thích là ngôn ngữ trong đó việc triển khai thực hiện các hướng dẫn trực tiếp mà không cần biên dịch chương trình thành ngôn ngữ máy. 4. Các chương trình được biên dịch chạy nhanh hơn các chương trình được giải thích. Các chương trình được giải thích chạy chậm hơn chương trình biên dịch.a language in which the implementations execute instructions directly without earlier compiling a program into machine language. 4. The compiled programs run faster than interpreted programs. The interpreted programs run slower than the compiled program.

Ví dụ ngôn ngữ được giải thích là gì?

Trình thông dịch trực tiếp thực hiện các hướng dẫn được viết bằng ngôn ngữ lập trình hoặc kịch bản mà không chuyển đổi trước đó chúng sang mã đối tượng hoặc mã máy. Ví dụ về các ngôn ngữ được giải thích là Perl, Python và Matlab.Perl, Python and Matlab.

Ruby có được giải thích ngôn ngữ không?

Ruby là một ngôn ngữ lập trình rất linh hoạt.Các nhà phát triển mã hóa trong Ruby có thể thay đổi cách thức hoạt động của ngôn ngữ.Đó là một ngôn ngữ được giải thích như Python, thay vì một ngôn ngữ được biên dịch như C hoặc C ++.It's an interpreted language like Python, rather than a compiled one like C or C++.

JavaScript có được khách hàng giải thích không?

JavaScript được giải thích trong thời gian chạy của trình duyệt khách.Có một công cụ gọi là trình biên dịch Rhino JavaScript được cho là biên dịch JavaScript vào các tệp lớp Java.. There is a tool called the Rhino JavaScript Compiler that supposedly compiles JavaScript into Java class files, though.

Bài Viết Liên Quan

Chủ Đề