[PyACC 5] Chương trình dịch
Định nghĩa
Chương trình dịch là một chương trình máy tính có chức năng chuyển đổi một chương trình viết trên ngôn ngữ lập trình bậc cao thành một chương trình có thực hiện được trên máy tính(ngôn ngữ máy).
Minh họa bằng hình dưới đây:

Trong đó:
- Chương trình nguồn: Là chương trình viết trên ngôn ngữ lập trình bậc cao.
- Chương trình đích: Là chương trình nguồn được chuyển đổi sang ngôn ngữ máy nhờ chương trình dịch.
Phân loại chương trình dịch
Chương trình dịch được chia thành hai loại: Thông dịch và biên dịch
Chương trình biên dịch - Trình biên dịch - Compiler
Chương trình biên dịch hoạt động bằng cách đọc một chương trình được viết bằng ngôn ngữ cấp cao và chuyển đổi nó thành ngôn ngữ máy hoặc ngôn ngữ cấp thấp và báo cáo các lỗi có trong chương trình.
Chương trình biên dịch thường chuyển đổi toàn bộ mã nguồn trong một lần sang mã máy, người dùng sẽ nhận được mã được biên dịch sẵn sàng để thực thi.
Chương trình thông dịch - Trình thông dịch - Interpreter
Chương trình thông dịch hoạt động bằng cách đọc từng lệnh của một chương trình được viết bằng ngôn ngữ cấp cao và chuyển đổi nó thành ngôn ngữ máy và thực thi luôn lệnh đó.
Chương trình thông dịch thường chuyển đổi từng lệnh trong mã nguồn trong sang mã máy và thực thi ngay lập tức.
So sánh trình biên dịch và trình thông dịch
Tiêu chí | Trình biên dịch | Trình thông dịch |
---|---|---|
Đầu vào | Toàn bộ chương trình | Chỉ một dòng code |
Đầu ra | Mã đối tượng trung gian | Không tạo ra bất kì mã đối tượng trung gian nào |
Cơ chế hoạt động | Việc biên dịch sẽ phải hoàn thành công việc trước khi thực thi | Việc biên dịch và thực thi sẽ là đồng thời |
Tốc độ | Nhanh hơn | Chậm hơn |
Bộ nhớ | Yêu cầu bộ nhớ nhiều hơn do việc tạo mã đối tượng | Nó đòi hỏi ít bộ nhớ hơn vì nó không tạo mã đối tượng trung gian |
Errors | Hiển thị tất cả các lỗi sau khi biên dịch, tất cả cùng một lúc | Hiển thị lỗi của từng dòng một |
Phát hiện error | Rất khó khăn | Tương đối dễ |
Các ngôn ngữ lập trình | C, C++, C#... | PHP, Javascript, Python, Ruby |