Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)
Trang 1 trong tổng số 1 trang
Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)
Thông dịch(Interpretion) còn gọi là sự thông dịch, còn trình thông dịch (Interpretor) là một trình thông dịch ngôn ngữ. Trong thông dịch thì mã nguồn không được dịch trước thành ngôn ngữ máy mà mỗi lần cần chạy chương trình thì mã nguồn mới được dịch để thực thi từng dòng 1 (line by line). Tất cả các ngôn ngữ không biện dịch ra mã máy đ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)
Ư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, ràng kiểu dữ liệu không chặc chẽ
- 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 HDH. tiêu biểu là Perl, PHP, Python
Nhược điểm
- Tại vì do 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).... nên ngôn ngữ trình thông dịch chủ yếu là dùng ở mức độ font-end (muốn biết font-end là gì thì google đi)
- 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.
Biên dịch(Compilation). Chương trình được viết được biên dịch ra thành ngôn ngữ máy trên một HDH xác định trước và chỉ chạy trên HDH đó (C++ -> .exe chỉ chạy trên Win, C++ -> .o chạy trên Unix/Linux .....)
Ưu điểm
- Ràng buộc chặc 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 ct có thể tận dụng toàn bộ các tính năng đặc trưng của hdh
- 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.
P/S: Các bạn có thể thắc mắt tại sao Java cũng là ngôn ngữ biên dịch mà có thể chạy mọi HDH, chúng ta cần chú ý rằng: Java không biên dịch ra ngôn ngữ máy mà biên dịch ra bytecode, và bytecode đó phải chạy trên JVM (Java Virtual Machine) là một máy ảo trong đó có hệ điều hành ảo (java)
Có gì thắc mắc các bạn có thể comment mình sẽ giải thích
Ư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, ràng kiểu dữ liệu không chặc chẽ
- 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 HDH. tiêu biểu là Perl, PHP, Python
Nhược điểm
- Tại vì do 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).... nên ngôn ngữ trình thông dịch chủ yếu là dùng ở mức độ font-end (muốn biết font-end là gì thì google đi)
- 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.
Biên dịch(Compilation). Chương trình được viết được biên dịch ra thành ngôn ngữ máy trên một HDH xác định trước và chỉ chạy trên HDH đó (C++ -> .exe chỉ chạy trên Win, C++ -> .o chạy trên Unix/Linux .....)
Ưu điểm
- Ràng buộc chặc 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 ct có thể tận dụng toàn bộ các tính năng đặc trưng của hdh
- 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.
P/S: Các bạn có thể thắc mắt tại sao Java cũng là ngôn ngữ biên dịch mà có thể chạy mọi HDH, chúng ta cần chú ý rằng: Java không biên dịch ra ngôn ngữ máy mà biên dịch ra bytecode, và bytecode đó phải chạy trên JVM (Java Virtual Machine) là một máy ảo trong đó có hệ điều hành ảo (java)
Có gì thắc mắc các bạn có thể comment mình sẽ giải thích
VanTanVu(I11c)- Tổng số bài gửi : 13
Join date : 31/08/2011
Age : 37
Đến từ : TP.HCM
Similar topics
» Thảo luận Bài 3
» Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)
» Phân biệt giữa Thông Dịch(Interpretion) và Biên Dịch(Compilation)!
» Ôn tập để Kiểm tra giữa kỳ và Thi lý thuyết
» Thảo luận Bài 3
» Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)
» Phân biệt giữa Thông Dịch(Interpretion) và Biên Dịch(Compilation)!
» Ôn tập để Kiểm tra giữa kỳ và Thi lý thuyết
» Thảo luận Bài 3
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết