Phân biệt Thông dịch và Biên dịch

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

Phân biệt Thông dịch và Biên dịch

Bài gửi  HuynhThanhLy(I12A) on 5/3/2012, 12:36

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.

Link: http://www.ddth.com/showthread.php/139536-kh%C3%A1c-bi%E1%BB%87t-gi%E1%BB%AFa-tr%C3%ACnh-bi%C3%AAn-d%E1%BB%8Bch-%28compiler%29-v%C3%A0-tr%C3%ACnh-th%C3%B4ng-d%E1%BB%8Bch-%28interpreter%29#ixzz1oDZU1pXX

HuynhThanhLy(I12A)

Tổng số bài gửi : 42
Join date : 17/02/2012
Age : 28
Đến từ : Quảng Ngãi

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

Về Đầu Trang Go down

Bổ sung "Thông dịch và biên dịch "

Bài gửi  BuiHuongTra(I12A) on 5/3/2012, 14:46

Trình biên dịch, còn gọi là phần mềm biên dịch, compiler, là một chương trình máy tính làm công việc dịch một chuỗi các câu lệnh được viết bằng một ngôn ngữ lập trình (gọi là ngôn ngữ nguồn hay mã nguồn), thành một chương trình tương đương nhưng ở dưới dạng một ngôn ngữ máy tính mới (gọi là ngôn ngữ đích) và thường là ngôn ngữ ở cấp thấp hơn, như ngôn ngữ máy. Chương trình mới được dịch này gọi mã đối tượng.
Trình thông dịch biên dịch một chương trình nguồn theo từng phân đoạn. Sau đó, thực thi các đoạn mã đã được biên dịch
  • Sự khác nhau giữa Thông dịch và biên dịch

Trình biên dịch sẽ dịch toàn bộ chương trình, cho ra chương trình đích được lưu lại trong máy tính rồi mới thực hiện chương trình.
+Có khả năng chuyển dịch mã nguồn của một ngôn ngữ ban đầu sang dạng mã mới thuộc về ngôn ngữ cấp thấp hơn.
* Ưu điểm :
+Biên dịch sang cơ chế ngôn ngữ cấp thấp thực hiên bởi máy tính thông qua các vùng nhớ sẽ nhanh hơn so với Thông dịch.
+Trình biên dịch sẽ kiểm tra cú pháp chương trình, thực hiện các phép kiểm tra logic và đảm bảo các dữ liệu sắp được sử dụng trong các phép so sánh, tính toán đã được định nghĩa một cách hợp lý ở một nơi nào đó trong chương trình. Một chức năng quan trọng của trình biên dịch là nó sẽ tạo ra một danh sách lỗi của tất cả mệnh đề trong chương trình vi phạm cú pháp của ngôn ngữ. Danh sách này giúp lập trình viên dễ dàng sửa đổi chương trình.
*Nhược điểm :
+ Do ngôn ngữ máy phụ thuộc vào bộ vi xử lý nên các máy tính khác nhau sẽ cần có các trình biên dịch khác nhau đối với cùng một ngôn ngữ cấp cao. Ví dụ, một máy mainframe, máy mini và máy tính cá nhân cần có các trình biên dịch khác nhau để biên dịch cùng một chương trình nguồn sang mã máy của từng loại máy này.

Trình thông dịch sẽ dịch từng câu lệnh một và chương trình đích sẽ không được lưu lại.
+ Có khả năng đọc, chuyển dịch mã nguồn của một ngôn ngữ và ra lệnh cho máy tính tiến hành các tính toán dựa theo cú pháp của ngôn ngữ.
* Ưu điểm :
+Chuyển đổi một mệnh đề của chương trình và thực hiện đoạn mã kết quả ngay, sau đó nó tiếp tục chuyển đổi mệnh đề thứ 2 rồi thi hành đoạn mã kết quả thứ 2 và cứ thế. Khi sử dụng trình thông dịch, mỗi lần chạy chương trình là mỗi lần chương trình nguồn được thông dịch sang ngôn ngữ máy. Không có chương trình đối tượng nào được tạo ra.
+ Là lập trình viên vẫn có thể chạy một chương trình vẫn còn lỗi cú pháp. Chỉ đến lúc thông dịch đến câu lệnh có lỗi cú pháp, quá trình thi hành chương trình mới bị ngừng lại và trình thông dịch sẽ thông báo lỗi.
* Nhược điểm :
+ Các chương trình thông dịch chạy không nhanh bằng các chương trình được biên dịch vì quá trình chuyển đổi sang ngôn ngữ máy được thực hiện cùng với quá trình thi hành chương trình. Vì lý do này, ngày nay, đa số các ngôn ngữ cấp cao đều dùng trình biên dịch.




BuiHuongTra(I12A)

Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 29
Đến từ : Phú Yên

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

Về Đầu Trang Go down

Ví dụ về Thông dịch và biên dịch

Bài gửi  BuiHuongTra(I12A) on 5/3/2012, 15:35

Ví dụ 1
Bạn là người không biết tiếngAnh vậy làm sao để bạn có thể nói chuyện vớingười Anh hay đọc một cuốn sách tiếng Anh?
+Khi một người làm phiên dịch người đó phảidịch như thế nào? (Dịch ngay từng câu khi 2người nói chuyện) => Thông dịch
+Khi một người muốn dịch 1 cuốn sách sangtiếng Việt thì làm thế nào? (Dịch toàn bộcuốn sách đó sang tiếng Việt để người đó có thể đọc được =>Biên dịch

Ví Dụ 2
: Với một trình biên dịch thì việc tạo ra một file thực thi exe gồm có hai bước chính .Bước đầu tiên là bước biên dịch ,nếu như bạn chọn chế độ dịch thẳng từ source ra dạng mã máy(Native Code) thì trình biên dịch sẽ tạo ra một số file trung gian từ source code .Các file trung gian này được gọi là các Object file và các trình biên dịch đã dịch thành file có phần mở rộng là .Ojb.Mặc dù các Obj file này bao gồm cả mã máy nhưng nó vẫn không thể chạy được mà phải qua một bước nữa đó chính là phần dịch sang file EXE.Trong quá trình tạo file exe thì trình biên dịch sẽ kết nối đoạn mã khởi động chương trình của mình viết với hệ điều hành để báo cho hệ điều hành biết để tải chương trình của mình vào bộ nhớ để chạy .
Thông thường đối với các obj file bạn sẽ không tìm thấy vì chúng đã được xóa ngay sau khi thực hiên bước hai (tạo exe file).

BuiHuongTra(I12A)

Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 29
Đến từ : Phú Yên

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

Về Đầu Trang Go down

Re: Phân biệt Thông dịch và Biên dịch

Bài gửi  trinhtoquyen_11H1010109 on 6/3/2012, 08:11

Cảm ơn đã post. Ví dụ của các bạn rất dễ hiểu

trinhtoquyen_11H1010109

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

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

Về Đầu Trang Go down

Re: Phân biệt Thông dịch và Biên dịch

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

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


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