Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)

+2
vophatdat
tranhongnguyen_I82C
6 posters

Go down

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Empty Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)

Bài gửi  tranhongnguyen_I82C 30/3/2010, 00:12

Có bạn nào hiểu rõ về Interpretion và Compilation không ? Giúp mình giải thích với, hôm chủ nhật thầy có nói nhưng mình cũng chưa hiểu lắm.Mọi người chú ý nha mình có nghe thầy nói đây là một trong những câu có thể ra thi đó.
Please help me!!!!
Thanks

tranhongnguyen_I82C

Tổng số bài gửi : 13
Join date : 24/03/2009

Về Đầu Trang Go down

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Empty Re: Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)

Bài gửi  vophatdat 30/3/2010, 08:11

tranhongnguyen_I82C đã viết:Có bạn nào hiểu rõ về Interpretion và Compilation không ? Giúp mình giải thích với, hôm chủ nhật thầy có nói nhưng mình cũng chưa hiểu lắm.Mọi người chú ý nha mình có nghe thầy nói đây là một trong những câu có thể ra thi đó.
Please help me!!!!
Thanks

Thông dịch(Interpretion) là lần lượt thi hành từng lệnh 1 thông qua 1 chương trình gọi là Trình thông dịch(Interpretor). "Thường được viết ở ngôn ngữ cấp thấp được lưu thành file với đuôi mở rộng *.bat(batch)"

Biên dịch(Compilation) là dịch 1 lần 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 phải thông dịch lại).
Very Happy

vophatdat

Tổng số bài gửi : 39
Join date : 16/03/2010
Age : 39

http://www.vsoftgroup.com

Về Đầu Trang Go down

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Empty Biên dịch và thông dịch

Bài gửi  I91C_hoangnd 30/3/2010, 10:23

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

I91C_hoangnd

Tổng số bài gửi : 8
Join date : 29/03/2010

Về Đầu Trang Go down

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Empty Re: Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)

Bài gửi  DucDuyI91C 30/3/2010, 23:15

nói rất hay...Mình còn 1 ví dụ chắc chắn bạn sẽ hiểu rõ hơn
ví dụ thông dịch giống như 1 người thông dịch viên đi dịch cuộc nói chuyện của 2 người. phải biết người này nói gì thì mới dịch được. điều hiển nhiên là người thông dịch viên này chỉ có thể biết 2 thứ tiếng ( là tiếng bản sứ và tiếng cần dịch).
biện dịch là người ngồi 1 nơi và dịch sách dịch 1 lúc toàn bộ nội dung của cuồn sách đó.

ví dụ thông thường giờ ví dụ bằng chương trình hen.
bạn đã từng chạy chương trình vb hay c++ c# chưa? nếu bạn không debug tức chỉ đơn thuần là bấm run ( f5 cho vb và c++, f6 cho c#..). thì cái đó máy sẽ đọc hết 1 lược các câu lệnh rồi mới buil thành từng chương trình.
nhưng khi bạn debug (tức break point tại điểm nào đó ( có hình vòng tròn đỏ ở ngoài)) thì tức là bạn đang thông dịch câu lệnh đó. máy sẽ đọc từng câu lệnh rồi mới thực thi câu lệnh đó.
thử xem bạn nhé.! mong bạn hiểu rõ 2 khái niệm này

DucDuyI91C

Tổng số bài gửi : 77
Join date : 18/03/2010

Về Đầu Trang Go down

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Empty Trình biên dịch - Compiler

Bài gửi  khanh.nd_08H1010044 31/3/2010, 10:28

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Compilersvg
khanh.nd_08H1010044
khanh.nd_08H1010044

Tổng số bài gửi : 38
Join date : 08/04/2009
Age : 41
Đến từ : TP. Hồ Chí Minh

Về Đầu Trang Go down

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Empty Trình biên dịch (compiler) hay là trình thông dịch (interpreter)?

Bài gửi  khanh.nd_08H1010044 31/3/2010, 10:44

Đ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.

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

Còn trình thông dịch thì có ưu điểm là có thể chạy trên nhiều HDH 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.

Về không gian:
- Đối với trình biên dịch thì file exe thường có dung lượng to hơn file source nhiều. Đơn giản bạn thử viết 1 chương trình hello world bằng C rồi dịch sang exe rồi so sánh file exe với file c xem dung lượng ra sao :
- 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ố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 đó).
khanh.nd_08H1010044
khanh.nd_08H1010044

Tổng số bài gửi : 38
Join date : 08/04/2009
Age : 41
Đến từ : TP. Hồ Chí Minh

Về Đầu Trang Go down

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Empty <h4>Biên dịch && Thông dịch</h4>

Bài gửi  VoThiHongNhung(I12A) 7/3/2012, 12:02

Thông dịch(Interpretion) là lần lượt thi hành từng lệnh 1 thông qua 1 chương trình gọi là Trình thông dịch(Interpretor). "Thường được viết ở ngôn ngữ cấp thấp được lưu thành file với đuôi mở rộng *.bat(batch)"

Biên dịch(Compilation) là dịch 1 lần 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 phải thông dịch lại).
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)

ví dụ:Thông dịch giống như 1 người thông dịch viên đi dịch cuộc nói chuyện của 2 người. phải biết người này nói gì thì mới dịch được. Người thông dịch viên này thường chi biết 2 thứ tiếng ( là tiếng bản sứ và tiếng cần dịch).

Biện dịch là người ngồi 1 nơi và dịch sách dịch 1 lúc toàn bộ nội dung của cuồn sách đó.
Bạn chạy chương trình vb hay c++ c# chưa? nếu bạn không debug tức chỉ đơn thuần là bấm run ( f5 cho vb và c++, f6 cho c#..). thì cái đó máy sẽ đọc hết 1 lược các câu lệnh rồi mới build thành từng chương trình=>biên dịch
Nhưng khi bạn debug (tức break point tại điểm nào đó ( có hình vòng tròn đỏ ở ngoài) thì tức là bạn đang thông dịch câu lệnh đó. máy sẽ đọc từng câu lệnh =>thong dịch

VoThiHongNhung(I12A)

Tổng số bài gửi : 20
Join date : 20/02/2012

Về Đầu Trang Go down

Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch) Empty Re: Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

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