Bài viết này sẽ giải thích cách mà code Python của ae được thực thi, từ những dòng code ae viết cho đến khi chương trình chạy trên máy tính. Sau khi đọc xong, ae sẽ hiểu được các khái niệm như Interpreter (Trình thông dịch), Bytecode và Python Virtual Machine (PVM), giúp ae làm việc với Python hiệu quả hơn.
1. Python Interpreter
Ae phải hiểu 1 điều, để máy tích thực thi lệnh của ae thì bắt buộc ae phải đưa mã máy dạng nhị phân thì máy tính mới hiểu và thực thi được, để code Python vào máy nó không chạy đâu. Vậy thì làm sao để chuyển ngôn ngữ Python sang mã máy để chạy?
Câu trả lời là dùng Python Interpreter. Mình xin phép dùng “PI” cho Python Interpreter cho câu văn gọn bớt nha
Bên dưới là quy trình chạy lệnh để chuyển code -> mã máy:
Python (interpreted language): Code -> Trình thông dịch(PI) -> Mã máy chạy — (dịch code và chạy từng dòng 1)
PI tồn tại khi ae cài python vào máy của ae. Và Python2, Python3.10, Python3.13 sẽ có PI độc lập khác nhau, không có dùng chung. Tuy là khác nhau nhưng tất cả phiên bản đều có cơ chế hoạt động giống nhau
1. Parsing (Phân tích cú pháp): Đọc code nguồn và kiểm tra cú pháp.
2. Compilation to Bytecode (Biên dịch thành mã byte): Dịch code nguồn thành Bytecode.
3. Execution by PVM (Thực thi bởi PVM): Python Virtual Machine thực thi bytecode.

Bytecode là gì? Nó có phải là mã máy không? Nó trông như nào?
Bytecode là một dạng mã trung gian. Nó không phải là code Python ae viết, cũng không phải là mã máy mà CPU hiểu được. Ae có thể hình dung Bytecode giống như một tập hợp các chỉ thị dành cho PVM
Bytecode này thường được lưu tạm thời trong thư mục __pycache__ để sử dụng cho lần chạy sau, giúp tốc độ khởi động nhanh hơn. Nếu ae muốn biết mã Bytecode trông như nào có thể mở file .pyc lên là biết nhé

Thế còn Python Virtual Machine (PVM) là gì? Nó làm công việc gì?
PVM không phải là một máy tính vật lý. Nó là một chương trình được thiết kế để hiểu và thực thi Bytecode. PVM sẽ đọc từng dòng lệnh Bytecode, sau đó dịch nó thành mã máy (machine code) phù hợp với CPU của ae và thực thi ngay lập tức
Leave a Reply