Câu hỏi: So sánh thông dịch và biên dịch
Lời giải:
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
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 |