[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ịchTrình thông dịch
Đầu vàoToàn bộ chương trìnhChỉ một dòng code
Đầu raMã đối tượng trung gianKhông tạo ra bất kì mã đối tượng trung gian nào
Cơ chế hoạt độngViệc biên dịch sẽ phải hoàn thành công việc trước khi thực thiViệc biên dịch và thực thi sẽ là đồng thời
Tốc độNhanh hơnChậm hơn
Bộ nhớYêu cầu bộ nhớ nhiều hơn do việc tạo mã đối tượngNó đòi hỏi ít bộ nhớ hơn vì nó không tạo mã đối tượng trung gian
ErrorsHiển thị tất cả các lỗi sau khi biên dịch, tất cả cùng một lúcHiển thị lỗi của từng dòng một
Phát hiện errorRất khó khănTương đối dễ
Các ngôn ngữ lập trìnhC, C++, C#...PHP, Javascript, Python, Ruby