Sự khác biệt giữa các ngôn ngữ được biên dịch và diễn giải

Một câu hỏi phổ biến được mọi người nghĩ đến khi lập trình là "tôi nên học ngôn ngữ nào?"

Câu trả lời cho câu hỏi này hầu như không thể trả lời được. Nếu bạn đang tìm kiếm để tìm hiểu chương trình cho các mục đích nghề nghiệp thì đó là một ý tưởng tốt để xem những gì mọi người khác đang sử dụng và tìm hiểu điều đó.

Ví dụ, trong những năm gần đây, một số lượng lớn người dùng đang sử dụng .NET stack liên quan đến ASP.NET, C #, JavaScript / JQuery / AngularJS. Các ngôn ngữ lập trình này là một phần của bộ công cụ Windows và trong khi .NET đã được tạo sẵn cho Linux, nó không được sử dụng rộng rãi.

Trong thế giới Linux, mọi người sử dụng Java, PHP, Python, Ruby On Rails và C.

Ngôn ngữ biên dịch là gì?

#include int main () {printf ("Hello World"); }

Trên đây là một ví dụ rất đơn giản của một chương trình được viết bằng ngôn ngữ lập trình C.

C là một ví dụ về ngôn ngữ được biên dịch. Để chạy mã trên, chúng ta cần chạy nó thông qua trình biên dịch C.

Nói chung, để thực hiện việc này, hãy chạy lệnh sau trong Linux:

gcc helloworld.c -o xin chào

Lệnh trên biến mã từ định dạng có thể đọc được thành mã máy mà máy tính có thể chạy nguyên bản.

"gcc" là một chương trình biên dịch (trình biên dịch gnu c).

Một chương trình biên dịch có thể được chạy đơn giản bằng cách chạy tên của chương trình như sau:

./xin chào

Những lợi ích của việc sử dụng một trình biên dịch để biên dịch mã là nó thường chạy nhanh hơn so với mã giải thích vì nó không cần phải làm việc nó trên bay khi ứng dụng đang chạy.

Chương trình biên dịch cũng đã được kiểm tra lỗi trong khi nó đang được biên soạn. Nếu có bất kỳ lệnh nào mà trình biên dịch không thích thì chúng sẽ được báo cáo. Điều này sẽ cho phép bạn sửa tất cả các lỗi mã hóa trước khi nhận được một chương trình chạy hoàn toàn.

Chỉ vì một chương trình đã biên dịch thành công không có nghĩa là nó sẽ chạy theo cách hợp lý theo cách bạn mong đợi để bạn vẫn cần phải thử nghiệm ứng dụng của mình.

Hiếm khi là bất cứ điều gì bao giờ hoàn hảo, tuy nhiên. Nếu chúng tôi có một chương trình C được biên dịch trên máy tính Linux của chúng tôi, chúng tôi không thể sao chép chương trình đã biên dịch đó sang máy tính Windows của chúng tôi và mong đợi tệp thực thi chạy.

Để có được cùng một chương trình C chạy trên máy tính Windows của chúng tôi, chúng tôi sẽ cần phải biên dịch lại chương trình bằng trình biên dịch C trên máy tính Windows.

Ngôn ngữ phiên dịch là gì?

in ("hello world")

Đoạn mã trên là một chương trình python sẽ hiển thị các từ "hello world" khi nó được chạy.

Để chạy mã, chúng tôi không cần phải biên dịch mã đầu tiên. Thay vào đó, chúng ta có thể chỉ cần chạy lệnh sau:

python helloworld.py

Đoạn mã trên không cần phải được biên dịch trước, nhưng nó yêu cầu python được cài đặt trên bất kỳ máy nào cần chạy script.

Trình thông dịch python lấy mã có thể đọc được và biến nó thành một thứ khác trước khi biến nó thành một thứ mà máy có thể đọc được. Tất cả điều này xảy ra sau hậu trường và với tư cách là người dùng, tất cả những gì bạn sẽ thấy là những từ "hello world".

Nói chung, nó được coi là mã giải nghĩa sẽ chạy chậm hơn so với mã được biên dịch bởi vì nó phải chủ động thực hiện bước chuyển mã thành thứ gì đó mà máy có thể xử lý khi đang chạy ngược với mã được biên dịch mà chỉ có thể chạy.

Trong khi điều này có vẻ như một nhược điểm có một số lý do tại sao ngôn ngữ thông dịch là hữu ích.

Đối với một trong đó là dễ dàng hơn nhiều để có được một chương trình được viết bằng python để chạy trên Linux, Windows và macOS . Tất cả những gì bạn cần làm là đảm bảo rằng python được cài đặt trên máy tính mà bạn muốn chạy tập lệnh.

Một lợi ích khác là mã luôn có sẵn để đọc và có thể dễ dàng thay đổi để hoạt động theo cách bạn muốn. Với mã được biên dịch, bạn cần phải tìm nơi mã được giữ, thay đổi nó, biên dịch nó và triển khai lại chương trình.

Với mã giải thích, bạn mở chương trình, thay đổi nó và nó đã sẵn sàng để đi.

Vậy bạn nên sử dụng cái nào?

Chúng tôi nghi ngờ quyết định của bạn về ngôn ngữ lập trình sẽ được quyết định về việc đó có phải là một ngôn ngữ được biên soạn hay không.

Danh sách này có thể đáng xem khi nó liệt kê 9 ngôn ngữ lập trình phổ biến nhất.

Trong khi một số ngôn ngữ rõ ràng đang chết như COBOL, Visual Basic, và ActionScript, có những ngôn ngữ khác đang trên đà chết và đã có một sự trở lại ấn tượng như JavaScript.

Nói chung, lời khuyên của chúng tôi sẽ là nếu bạn đang sử dụng Linux, bạn nên học Java, Python hoặc C và nếu bạn đang sử dụng Windows tìm hiểu .NET và AngularJS.