Hướng dẫn why is python interpreted and not compiled? - tại sao python được giải thích và không được biên dịch?

Đó là một sự nhầm lẫn lớn đối với những người mới bắt đầu làm việc ở Python và câu trả lời ở đây có một chút khó hiểu nên tôi sẽ làm cho nó dễ dàng hơn.

Khi chúng tôi hướng dẫn Python chạy kịch bản của chúng tôi, có một vài bước mà Python thực hiện trước khi mã của chúng tôi thực sự bắt đầu khủng hoảng:

  • Nó được tổng hợp thành mã byte.
  • Sau đó, nó được chuyển đến máy ảo.

Khi chúng tôi thực thi một số mã nguồn, Python biên dịch nó vào mã byte. Biên dịch là một bước dịch và mã byte là một đại diện độc lập nền tảng thấp của mã nguồn.

Lưu ý rằng mã byte python không phải là mã máy nhị phân [ví dụ: hướng dẫn cho chip intel].

Trên thực tế, Python dịch từng câu lệnh của mã nguồn thành các hướng dẫn mã byte bằng cách phân tách chúng thành các bước riêng lẻ. Bản dịch mã byte được thực hiện để thực hiện tốc độ. Mã byte có thể được chạy nhanh hơn nhiều so với các câu lệnh mã nguồn gốc. Nó có tiện ích mở rộng và nó sẽ được viết nếu nó có thể viết vào máy của chúng tôi.

Vì vậy, lần tới khi chúng tôi chạy cùng một chương trình, Python sẽ tải tệp .pyc và bỏ qua bước biên dịch trừ khi nó được thay đổi. Python tự động kiểm tra dấu thời gian của các tệp mã nguồn và byte để biết khi nào nó phải được biên dịch lại. Nếu chúng ta định lại mã nguồn, mã byte sẽ tự động tạo lại vào lần tiếp theo chương trình được chạy.

Nếu Python không thể viết các tệp mã byte vào máy của chúng tôi, chương trình của chúng tôi vẫn hoạt động. Mã byte được tạo trong bộ nhớ và chỉ cần loại bỏ trên lối ra chương trình. Nhưng bởi vì thời gian khởi động tốc độ .PYC, chúng tôi có thể muốn đảm bảo rằng nó đã được viết cho các chương trình lớn hơn.

Hãy tóm tắt những gì xảy ra đằng sau hậu trường. Khi Python thực hiện một chương trình, Python đọc .Py vào bộ nhớ và phân tích cú pháp nó để có được mã byte, sau đó tiếp tục thực thi. Đối với mỗi mô -đun được chương trình nhập, Python trước tiên kiểm tra xem liệu có phiên bản Bytecode được biên dịch trước, trong .Pyo hoặc .pyc, có dấu thời gian tương ứng với tệp .py của nó. Python sử dụng phiên bản bytecode nếu có. Mặt khác, nó phân tích tệp .py của mô -đun, lưu nó vào tệp .pyc và sử dụng mã byte mà nó vừa tạo. When Python executes a program, Python reads the .py into memory, and parses it in order to get a bytecode, then goes on to execute. For each module that is imported by the program, Python first checks to see whether there is a precompiled bytecode version, in a .pyo or .pyc, that has a timestamp which corresponds to its .py file. Python uses the bytecode version if any. Otherwise, it parses the module's .py file, saves it into a .pyc file, and uses the bytecode it just created.

Các tập tin mã byte cũng là một cách vận chuyển mã Python. Python vẫn sẽ chạy một chương trình nếu tất cả những gì nó có thể tìm thấy là các tệp.pyc, ngay cả khi các tệp nguồn .Py gốc không có ở đó.

Máy ảo Python [PVM]

Khi chương trình của chúng tôi đã được biên dịch thành mã byte, nó sẽ được chuyển đến để thực hiện vào máy ảo Python [PVM]. PVM không phải là một chương trình riêng biệt. Nó không cần phải được cài đặt bởi chính nó. Trên thực tế, PVM chỉ là một vòng lặp lớn mà lặp lại thông qua hướng dẫn mã byte của chúng tôi, từng người một, để thực hiện các hoạt động của họ. PVM là động cơ thời gian chạy của Python. Nó luôn luôn có mặt như là một phần của hệ thống Python. Đó là thành phần thực sự chạy các tập lệnh của chúng tôi. Về mặt kỹ thuật, nó chỉ là bước cuối cùng của những gì được gọi là phiên dịch Python.

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Cải thiện bài viết

    Lưu bài viết

    Đọc
    Now the question is – if there is any proof that python first compiles the program internally and then run the code via interpreter?
    The answer is yes! and note this compiled part is get deleted by the python[as soon as you execute your code] just it does not want programmers to get into complexity.

    Mã: Mã Python mẫu

    print["i am learning python"]

    print["i am enjoying it"]

    Bây giờ nếu bạn chạy mã này bằng dấu nhắc lệnh chỉ cần lưu mã này trên trong notepad và lưu với phần mở rộng. Chỉ cần lưu mã với tiện ích mở rộng PY PY, giả sử bạn đã tạo một thư mục có tên Python_Prog trong ổ D.
    syntax: python [name of the program.py] and press enter.
    Note: If you are writing code in the notepad just save the code with extension “py” inlet suppose you have created a folder named python_prog in d drive.

    Khi bạn nhấn nhập mã byte sẽ được tạo. Một thư mục được tạo và điều này sẽ chứa mã byte của chương trình của bạn. Thư mục này nằm trong thư mục Python_prog nơi bạn sẽ lưu mã Python của mình.

    Bây giờ để chạy mã byte được biên dịch chỉ cần nhập lệnh sau trong dấu nhắc lệnh:


    the extension .pyc is python compiler..

    Vì vậy, người ta đã chứng minh rằng các chương trình Python đều được biên soạn cũng như được giải thích !! Nhưng phần tổng hợp được ẩn khỏi lập trình viên.

    Tại sao Python sử dụng trình thông dịch và không phải trình biên dịch?

    Python là một ngôn ngữ được giải thích, có nghĩa là mã nguồn của chương trình Python được chuyển đổi thành mã byte sau đó được thực hiện bởi máy ảo Python. Python khác với các ngôn ngữ được biên dịch chính, chẳng hạn như C và C + +, vì mã Python không bắt buộc phải được xây dựng và liên kết như mã cho các ngôn ngữ này.Python code is not required to be built and linked like code for these languages.

    Tại sao Python không được biên soạn?

    Python không cần trình biên dịch vì nó dựa vào ứng dụng [được gọi là trình thông dịch] biên dịch và chạy mã mà không lưu trữ mã máy được tạo dưới dạng mà bạn có thể dễ dàng truy cập hoặc phân phối.Lưu câu trả lời này.it relies on an application [called an interpreter] that compiles and runs the code without storing the machine code being created in a form that you can easily access or distribute. Save this answer.

    Là thông dịch viên Python hay được biên soạn?

    Đối với hầu hết các phần, Python là một ngôn ngữ được giải thích và không phải là một ngôn ngữ được biên dịch, mặc dù tổng hợp là một bước.Mã Python, được viết trong.Tệp PY lần đầu tiên được biên dịch cho những gì được gọi là mã byte [được thảo luận chi tiết hơn nữa] được lưu trữ với a.pyc hoặc.Python is an interpreted language and not a compiled one, although compilation is a step. Python code, written in . py file is first compiled to what is called bytecode [discussed in detail further] which is stored with a . pyc or .

    Tại sao Java được biên soạn nhưng Python được giải thích?

    Bởi vì mã nguồn Java [. Tệp Java] biên dịch thành Java ir aka.Java Bytecode [. Tệp lớp], sau đó mã byte được giải thích bằng thời gian chạy hoặc được biên dịch bằng trình biên dịch chỉ trong thời gian [JIT] tùy thuộc vào nhu cầu hiệu suất của người dùng cuối.

    Bài Viết Liên Quan

    Chủ Đề