sự khác nhau của thông dịch và biên dịch

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

sự khác nhau của thông dịch và biên dịch

Bài gửi  tranngocviendong_k17 on 20/11/2014, 15:09

đây là một số thông tin em tìm được của các anh chị khóa trước trên hedieuhanh.fofumvi.net.
1.bài viết của daohuusang(i92c)
Sự khác nhau giữa thong dịch và biên dịch:

Thông dịch(Interpretion) là lần lượt thi hành từng lệnh 1 thông qua chương trình gọi là trình thong dịch(Interpreter). Thường được viết bằng ngôn ngữ cấp thấp và được lưu với file mở rộng *.bat(batch). Trong thông dịch thì mã nguồn không dượ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 hiện từng lệnh 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 , các ngôn ngữ theo trình thôngdịch thường gọi là script(kịch bản).
Biên dịch(compilation): là dịch toàn bộ chương trình thông qua 1 chương trình gọi là trình biên dịch(compiler) tạo ra file thưc thi *.exe(sẽ chạy 1 lần mà không cần thông dịch lại). Chương trình viết được biên dịch ra thành ngôn ngữ máy trên một hệ điều hành xác định và bàchỉ chạy trên hệ điều hành đó(C++ -> chỉ chạy trên win, C++ không chạy trên Unix/Linux .
...................
2. bài viết của nguyenminhduong(102c)

Thông dịch: khi chạy chương trình, ngôn ngữ chương trình được dịch sang ngôn ngữ máy rồi sau đó mới thực thi.
Biên dịch: lệnh của chương trình được thực thi, không cần dịch sang ngôn ngữ máy.
.........................
3.bài viết của NguyenManhTuan(102C)
Compiler: 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.
Interpreter : 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 interpreter lại.
Compiler giống như một dịch thuật gia, giã sử ông ta dịch một cuốn sách từ English sang Vietnam, sau này một người không biết English 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.
Interpreter 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 anh 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 anh thông dịch viên.
..................
4. một số thông tin khác mà em tìm được
So sánh Trình Biên Dịch & Thông Dịch

Compiler Interpreter

- 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 …..)

- 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 của trình biên dịch là chương trình được tối ưu tốt cho HĐH và kiến trúc phần cứng ngay lúc dịch sang mã máy.

- Trình thông dịch thì có ưu điểm là có thể chạy trên nhiều HĐH và kiến trúc máy tính khác nhau, miễn là có bộ thông dịch tương ứng trên HDH.

- Tuy quá trình này tốn thời gian, nhưng chỉ thực hiện có 1 lần mà thôi.

- Trình thông dịch thì mỗi lần chạy sẽ chuyển chương trình sang mã máy, mỗi lần dịch thì thời gian tốt í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 đó).

- Trình biên dịch tạo ra file executable 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.

- 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.
Java cũng là ngôn ngữ biên dịch mà có thể chạy mọi HĐH bởi vì 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).


tranngocviendong_k17

Tổng số bài gửi : 23
Join date : 25/10/2014

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: sự khác nhau của thông dịch và biên dịch

Bài gửi  tranngocviendong_k17 on 20/11/2014, 15:20

ở ý 4 gạch đầu dòng lẻ là của compiler còn gạch đầu dòng chẵn là của interperter nha. không hiểu sao không chia đôi ra được.

tranngocviendong_k17

Tổng số bài gửi : 23
Join date : 25/10/2014

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết