Hoang My Dung
Joined : 10 Dec 2007 Posts : 3
 | Subject: PHAN BIET THONG DICH & BIEN DICH! 23/1/2008, 00:16 | |
| ** Phân tích vai trò của Command-Interpreter và qua đó phân biệt về thông dịch và biên dịch. - Command-Interpreter: Là bộ dịch lệnh chuyển chương trình sang dạng mã máy để máy có thể hiểu và thực thi nó được. - Biên dịch: Code sau khi đc biên dịch sẽ tạo ra 1 file thường là .exe, và file .exe này có thể đem sử dụng lại không cần biên dịch nữa. - Thông dịch : Nó dịch từng lệnh rồi chạy từng lệnh, lần sau muốn chạy lại thì phải thông dịch lại. Ví dụ: Biên dịch giống như một dịch thuật gia, giã sử ông ta dịch một cuốn sách từ Tiếng Anh sang Tiếng Việt, sau này một người không biết Tiếng Anh vẫn có thể hiểu nội dung quyển sách bằng cách đọc quyển Tiếng Việt do ông ta dịch. Thông dịch giống như là thông dịch viên, có một cuộc hôi thảo người báo cáo là người Anh, trong khi hầu hết người dự báo cáo là người việt không biết tiếng Anh thì sẽ cần đến một người thông dịch viên, lần sau cũng có cuộc hội thảo tương tự như vậy, cùng chủ đề đó nhưng cũng cần đến người thông dịch viên. Hoàng T Mỹ Dung Mục quản:01 |
|
chantroitinhoc

Joined : 10 Jan 2008 Posts : 24
 | Subject: Trinh Bien Dich va Trinh Thong Dich 23/1/2008, 20:05 | |
| ************************************************************* - Trình biên dịch (compiler) có ưu điểm là tạo ra được các file thực thi có khả năng thực thi ngay trên những dòng máy sử dụng bộ vi xử lí có kiến trúc giống nhau (như x86, x64, powerchip ...) hay hệ điều hành giống nhau. Khả năng tối ưu mã lệnh để đạt hiệu suất cao nhất cho từng dòng CPU hay hệ điều hành là rất cao. Nhưng cái bất tiện của nó là phụ thuộc rất nhiều vào cấu trúc CPU và hệ điều hành. Ví dụ: một chương trình viết bằng C hay Pascal được biên dịch trong windows nhưng khi đưa sang linux thì không thể chạy được. Mặt khác trình biên dịch khá tốn thời gian vào việc link. - Trình thông dịch (interpreter) có ưu điểm là ít phụ thuộc vào cấu trúc vi xử lí hay hệ điều hành. Các chương trình viết bằng ngôn ngữ thông dịch có khả năng chạy đa nền (multiflatform) chỉ cần máy tính đó có cài một trình thông dịch (interpreter) phù hợp. Nhưng một số người lại cho rằng ngôn ngữ thông dịch chạy quá chậm so với ngôn ngữ biên dịch! Tuy nhiên đó là trước đây, bây giờ các ngôn ngữ thông dịch và cả trình thông dịch đã được cải tiến rất nhiều cả về hiệu suất và tốc độ. Mặt khác, trình thông dịch chiếm dụng bộ nhớ nhiều hơn trình biên dịch. Về việc này thì có lẽ chỉ hơn ngôn ngữ biên dịch một chút thôi, vì còn phải cấp bộ nhớ cho interpreter hoạt động. ************************************************************* Tóm lại: + Điểm khác nhau chính là trình biên dịch sẽ dịch mã nguồn sang mã máy 1 lần duy nhất, và sau đó chương trình sẽ chạy 1 mình trên HDH. Còn trình thông dịch thì sẽ dịch chương trình sang mã máy mỗi khi chạy. Do vậy chương trình của bạn không tự chạy 1 mình được mà phải cần có bộ thông dịch nạp lên trước. + Còn xét ưu điểm và nhược điểm ta có thể xem xét về các mặt sau nữa: Về không gian: - Về file trên đĩa thì file exe thường có dung lượng to hơn file source nhiều. Tuy nhiên, file exe lúc này đã là mã máy, nên trên đĩa nó bao nhiêu thì load lên memory nó sẽ xấp xỉ bấy nhiêu. Còn với các chương trình thông dịch thì trên memory còn có bộ thông dịch, và bộ thông dịch phải load chương trình nguồn lên rồi dịch thành mã máy...cho nên thường quá trình chạy 1 chương trình thông dịch sẽ tốn memory hơn.
Về thời gian: - Trình biên dịch tốn thời gian dịch, nhưng chỉ 1 lần duy nhất. - Trình thông dịch thì mỗi lần chạy sẽ chuyển chương trình của bạn sang mã máy, mỗi lần dịch thì thời gian tốn ít thôi, nhưng bù lại có thể lần nào chạy cũng phải dịch (trừ khi bộ thông dịch cache lại kết quả của lần dịch trước đó). |
|