Hướng dẫn does python require compilation - python có yêu cầu biên dịch không

Python, ngôn ngữ, giống như bất kỳ ngôn ngữ lập trình nào, tự nó không được biên soạn hoặc giải thích. Việc triển khai Python tiêu chuẩn, được gọi là CPython, biên dịch nguồn Python thành mã byte tự động và thực hiện thông qua một máy ảo, không phải là ý nghĩa của "được giải thích".

Nội dung chính

  • Một lời giải thích đơn giản về cách mã Python được thực thi khác với các ngôn ngữ lập trình cũ hơn.
  • Ngôn ngữ được giải thích
  • Tại sao phải giải thích?
  • Nhược điểm của các ngôn ngữ được giải thích
  • Chính xác thì bộ sưu tập rác là gì?
  • __Pycache__ là gì?
  • Tôi có nên biên dịch mã Python không?
  • Tại sao Python được biên soạn và giải thích?
  • Được biên dịch Python nhanh hơn C?
  • Tại sao ngôn ngữ được giải thích không thể được biên dịch?

Có các triển khai Python biên dịch với mã gốc. Ví dụ, dự án PYPY sử dụng tổng hợp JIT để có được lợi ích của việc sử dụng dễ sử dụng của Cpython kết hợp với hiệu suất mã gốc.

Cython là một cách tiếp cận lai khác, tạo và biên dịch mã C khi bay từ một phương ngữ của Python.

Tuy nhiên, vì Python được gõ linh hoạt, nên thường không thực tế để hoàn toàn đi kèm với tất cả các đường dẫn mã có thể và nó sẽ không bao giờ nhanh như các ngôn ngữ được đánh máy thống kê chính thống, ngay cả khi được thông qua JIT.

Một lời giải thích đơn giản về cách mã Python được thực thi khác với các ngôn ngữ lập trình cũ hơn.

Ngôn ngữ được giải thích

Tại sao phải giải thích?

Nhược điểm của các ngôn ngữ được giải thích

Chính xác thì bộ sưu tập rác là gì?

__Pycache__ là gì? is an interpreted, high-level, general-purpose programming language. It is is dynamically typed and garbage-collected.

Ngôn ngữ được giải thích

Tại sao phải giải thích?

Nhược điểm của các ngôn ngữ được giải thích.py file is first compiled to what is called bytecode [discussed in detail further] which is stored with a .pyc or .pyo format.

Chính xác thì bộ sưu tập rác là gì?interpreter. In most PCs, Python interpreter is installed at /usr/local/bin/python3.8. Instead of executing the instructions on CPU, bytecode instructions are executed on a Virtual Machine.

Tại sao phải giải thích?

Nhược điểm của các ngôn ngữ được giải thích

Chính xác thì bộ sưu tập rác là gì?

Nhược điểm của các ngôn ngữ được giải thích

Gõ động cung cấp rất nhiều tự do, nhưng đồng thời nó làm cho mã của bạn rủi ro và đôi khi khó gỡ lỗi.

Python thường bị buộc tội là ‘chậm. Bây giờ trong khi thuật ngữ này là tương đối và lập luận rất nhiều, lý do để chậm là vì trình thông dịch phải thực hiện công việc làm thêm để có hướng dẫn mã byte được dịch thành một hình thức có thể được thực thi trên máy. Một bài viết StackOverflow giúp dễ hiểu bằng cách sử dụng một sự tương tự -

Nếu bạn có thể nói bằng ngôn ngữ mẹ đẻ của mình với ai đó, điều đó thường sẽ hoạt động nhanh hơn là có thông dịch viên phải dịch ngôn ngữ của bạn sang một số ngôn ngữ khác để người nghe hiểu.

Chính xác thì bộ sưu tập rác là gì?

Trong các ngôn ngữ lập trình cũ, phân bổ bộ nhớ khá thủ công. Nhiều lần khi bạn sử dụng các biến không còn được sử dụng hoặc tham chiếu ở bất kỳ nơi nào khác trong chương trình, chúng cần được làm sạch từ bộ nhớ. Người thu gom rác làm điều đó cho bạn. Nó tự động giải phóng không gian mà không cần bạn làm gì cả. Quản lý bộ nhớ hoạt động theo hai cách -

Theo một cách đơn giản hóa, nó theo dõi số lượng tham chiếu đến một đối tượng. Khi số đó đi xuống 0, nó sẽ xóa đối tượng đó. Điều này được gọi là đếm tham chiếu. Điều này không thể bị vô hiệu hóa trong Python.reference counting. This cannot be disabled in Python.reference counting. This cannot be disabled in Python.

Trong trường hợp đối tượng tham chiếu bản thân hoặc hai đối tượng đề cập đến nhau, một quy trình gọi là bộ sưu tập rác thế hệ sẽ giúp. Đây là một cái gì đó đếm tham chiếu truyền thống không thể chăm sóc.

__Pycache__ là gì?

Nhiều lần trong dự án cá nhân của bạn hoặc trên GitHub, bạn có thể đã thấy một thư mục có tên __pycache__ được tạo tự động.

/folder   - __pycache__       - preprocess.cpython-36.pyc   - preprocess.py

Như bạn có thể thấy, tên tệp giống như tên bên ngoài thư mục __pycache__. Phần mở rộng .pyc cho chúng tôi biết rằng tệp chứa mã byte cho tiền xử lý.py. Tên Cpython biểu thị loại phiên dịch. Cpython có nghĩa là thông dịch viên đã được triển khai bằng ngôn ngữ C. Tương tự, JPython là một thông dịch viên Python được triển khai trong Java.cpython denotes the type of interpreter. CPython means that the interpreter was implemented in C language. Similarly, JPython is a Python interpreter implemented in Java.cpython denotes the type of interpreter. CPython means that the interpreter was implemented in C language. Similarly, JPython is a Python interpreter implemented in Java.

Nhưng tại sao thư mục được tạo ở nơi đầu tiên? Vâng, nó làm tăng một chút tốc độ của chương trình Python. Trừ khi bạn thay đổi mã python của mình, việc sắp xếp lại thành mã byte được tránh, do đó tiết kiệm thời gian.

Tôi đã bắt đầu blog cá nhân của mình và tôi không có ý định viết nhiều bài viết tuyệt vời hơn trên Medium. Hỗ trợ blog của tôi bằng cách đăng ký vào ThenLP.Space

Tôi có nên biên dịch mã Python không?

Như đã đề cập, bạn có thể nhận được hiệu suất tăng từ việc có mã python được biên dịch thành mã byte. Điều này thường được xử lý bởi chính Python, chỉ dành cho các tập lệnh nhập khẩu. Một lý do khác mà bạn có thể muốn biên dịch mã Python của mình, có thể là để bảo vệ tài sản trí tuệ của bạn khỏi được sao chép và/hoặc sửa đổi.to protect your intellectual property from being copied and/or modified.to protect your intellectual property from being copied and/or modified.

Tại sao Python được biên soạn và giải thích?

Python đều được biên dịch cũng như giải thích phần biên dịch hầu hết được ẩn khỏi người dùng.Trong khi chạy mã Python tạo mã byte bên trong mã byte này sau đó được chuyển đổi bằng máy ảo Python [p.v.m] để tạo đầu ra.The compilation part is mostly hidden from the user. While running the code python generates a byte code internally this byte code is then converted using a python virtual machine [p.v.m] to generate the output.The compilation part is mostly hidden from the user. While running the code python generates a byte code internally this byte code is then converted using a python virtual machine [p.v.m] to generate the output.

Được biên dịch Python nhanh hơn C?

Nó cho phép tập trung vào chính ý tưởng và không bị làm phiền với mã Boilerplate và những thứ tẻ nhạt khác.Tuy nhiên, Python đi kèm với một nhược điểm lớn: nó chậm hơn nhiều so với các ngôn ngữ được biên dịch như C hoặc C ++.It is much slower than compiled languages like C or C++.It is much slower than compiled languages like C or C++.

Tại sao ngôn ngữ được giải thích không thể được biên dịch?

Trong một ngôn ngữ được biên dịch, máy đích dịch trực tiếp chương trình.Trong một ngôn ngữ được giải thích, mã nguồn không được dịch trực tiếp bởi máy đích.Thay vào đó, một chương trình khác, hay còn gọi là trình thông dịch, đọc và thực thi mã.the source code is not directly translated by the target machine. Instead, a different program, aka the interpreter, reads and executes the code.the source code is not directly translated by the target machine. Instead, a different program, aka the interpreter, reads and executes the code.

Bài Viết Liên Quan

Chủ Đề