Câu hỏi: Biên dịch và thông dịch khác nhau ở đâu
Trả lời:
Trình biên dịch là trình dịch chuyển đổi từ ngôn ngữ nguồn (các ngôn ngữ lập trình bậc cao) thành ngôn ngữ đối tượng (ví dự như ngôn ngữ máy). Ngược lại với trình biên dịch, trình thông dịch là một chương trình bắt chước việc thực hiện của các chương trình được viết bằng ngôn ngữ nguồn.
Biên dịch và thông dịch khác nhau ở những điểm sau
Trình biên dịch duyệt, kiểm tra, phát hiện lỗi, xác định chương trình nguồn có dịch được không. Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ lại để sử dụng về sau khi cần thiết.
Trình thông dịch lần lượt dịch từng câu lệnh ra ngôn ngữ máy rồi thực hiện ngay câu lệnh vừa dịch được hoặc thông báo lỗi nếu không dịch được.
Bảng 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ộ trườ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#, Scala, typescript | PHP, Perl, Python, Ruby |