Thứ Tư, 15 tháng 8, 2012

Sự khác nhau giữa trình biên dịch và trình thông dịch


1. Trình thông dịch
Trình thông dịch là một trình để thông dịch ngôn ngữ. Trong thông dịch mã nguồn của chương trình không được dịch trước thành ngôn ngữ máy, mà khi chạy chương trình mã nguồn mới được dịch và thực thi từng dòng lệnh 1.
Tất cả các ngôn ngữ không biên dịch ra mã máy một lần duy nhất điều phải sử dụng trình thông dịch (PHP, WScripts, Perl, Linux Shell, Python....). Các ngôn ngữ theo trình thông dịch thường được gọi là script (kịch bản.
Như vậy chương trình viết bằng ngôn ngữ script phải có một trình thông dịch kèm theo khi chạy chương trình.

Ưu điểm
- Phát triển nhanh chóng
- Có thể chỉnh sửa mã nguồn bất kỳ khi nào
- Mạnh xử lý cú pháp
- Uyển chuyển mềm dẻo.

- Có thể chạy trên mọi nền tảng (flatform, hệ điều hành) nếu có trình thông dịch tương ứng, tại vì không phải là ngôn ngữ máy(chỉ là file văn bản) nên không bị phụ thuộc vào HĐH. tiêu biểu là Perl, PHP, Python

Nhược điểm
- Tại vì là ngôn ngữ thông dịch chạy line by line nên nên ngôn ngữ thông dịch không hỗ trợ đa luồn (multi thread), giao dịch (transaction)
 - Cũng do chạy line by line nên tốc độ thực thi không nhanh bằng các chương trình viết bằng ngôn ngữ biên dịch (C, C++, VB...) đã chuyên trực tiếp ra ngôn ngữ máy.
2. Trình biên dịch
 Trình biên dịch sẽ dịch mã nguồn thành mã máy trên một HĐH xác định và chỉ chạy trên hệ điều hành đó, do đó các chương trình được biên dịch sẽ phụ thuộc nhiều vào nền tảng và hệ điều hành
Ưu điểm
- Ràng buộc chặt chẽ về kiểu trong ngôn ngữ.
- Hỗ trợ các tính năng đa tuyến, transtion ...
- Do đã biên dịch phụ thuộc vào hệ điều hành nên chương trình có thể tận dụng toàn bộ các tính năng đặc trưng của HĐH
- Tốc độ thực thi tốt
- Bảo mật tốt (không thể xâm phạm mã nguồn làm thay đổi chức năng của chương trình)
- ....

Nhược điểm

- Sau khi biên dịch ra ngôn ngữ máy thì chỉ có thể chạy trên một HDH xác định.


(ST)

Không có nhận xét nào:

Đăng nhận xét