Một Chương Trình Python được Thực Thi Như Thế Nào?

1. Một chương trình Python được thực thi như thế nào?

Python thường được gọi là một ngôn ngữ thông dịch (interpreted language). Tuy nhiên, quá trình thực thi một chương trình Python bao gồm cả quá trình biên dịch (compiled)thông dịch (interpreted). Chúng ta cùng xem sơ đồ bên dưới để hiểu hơn về quá trình thực thi một chương trình Python.

Một chương trình Python được thực thi như thế nào?

Đầu tiên, mã nguồn Python được viết trong file có đuôi mở rộng là .py. Sau đó, trình biên dịch CPython sẽ đọc từng dòng code Python. Nó sẽ kiểm tra cú pháp của mỗi dòng code Python. Nếu gặp lỗi thì CPython sẽ ngừng biên dịch và thông báo lỗi.

Nếu không có lỗi thì CPython sẽ biên dịch mã nguồn Python thành bytecode và được lưu trữ trong file có đuôi mở rộng là .pyc hoặc .pyo. CPU không thể thực thi được bytecodebytecode cần được gửi đến PVM (Python Virtual Machine) để thông dịch thành mã máy (machine code) để thực thi. Nếu có lỗi xảy ra thì quá trình thực thi chương trình sẽ bị ngừng và xuất thông báo lỗi. Các lỗi này được gọi là lỗi runtime.

Tại sao phải biên dịch mã nguồn thành bytecode rồi thông dịch để thực thi? Ưu điểm của việc này là chỉ cần biên dịch source code một lần thành bytecode. Sau đó, có thể mang bytecode này thực thi trên các nền tảng khác nhau (Windows, Linux, MacOS,…). Tuy nhiên, nhược điểm là quá trình chạy chương trình Python thường chậm hơn so với các ngôn ngữ khác như C/C++.

2. Ví dụ về thực thi một chương trình Python

Ví dụ có một file source code Python sumPython.py nằm trong folder C:\python-examples như bên dưới:a = 5 b = 10 print("Sum = ", a + b)

Sử dụng Command Prompt để biên dịch code Python trong file sumPython.py. Đầu tiên, di chuyển folder hiện tại sang folder C:\python-examples. Khi đang ở C:\python-examples, sử dụng lệnh python -m py_compile sumPython.py để biên dịch code Python.

Biên dịch một file Python

Sau khi biên dịch xong, một folder __pycache__ được tạo ra và chứa file bytecode sumPython.cpython-310.pyc vừa được tạo ra khi biên dịch xong.

File bytecode của Python được biên dịch

Nội dung các lệnh trong file bytecode được mã hóa dưới dạng hệ cơ số 16.

Nội dung các lệnh trong file bytecode được mã hóa dưới dạng hệ cơ số 16.

Sau đó, di chuyển folder hiện tại sang folder C:\python-examples\__pycache__ rồi tiến hành thông dịch file bytecode sumPython.cpython-310.pyc để được kết quả chương trình.

Thông dịch file bytecode của Python

Lưu ý: Thông thường, chúng ta sẽ dùng Python IDE để chạy chương trình Python và không cần phải thực hiện các bước rườm rà trên. Các Python IDE đã hỗ trợ sẵn các thao tác thực thi biên dịch và thông dịch một chương trình Python với chỉ 1 nút nhấn.

  • Lỗi (error) và ngoại lệ (exception) trong Python
  • Cấu trúc điều khiển vòng lặp for trong Python
  • Đa kế thừa (multiple inheritance) trong Python
  • Cấu trúc rẽ nhánh if else và minh họa với C++
  • Gỡ rối khi dùng hàm date() trong PHP
5/5 - (21 bình chọn)Bài trước và bài sau trong môn học<< Cài đặt Python và môi trường lập trình với Visual Studio CodeCác thành phần và cú pháp cơ bản trong chương trình Python >>

Từ khóa » Trình Biên Dịch Python