Phân biệt Thông dịch và Biên dịch
3 posters
Trang 1 trong tổng số 1 trang
Phân biệt Thông dịch và Biên dịch
Gọi một cách đầy đủ thì là "Trình biên dịch" (Compiler) hoặc "Trình thông dịch" (Interpreter)
Trình biên dịch: làm công việc chuyển các câu lệnh được gõ bằng 1 ngôn ngữ lập trình nào đấy (gọi là mã nguồn) sang một chương trình tương đương nhưng bằng một ngôn ngữ máy tính mới (gọi là chương trình đích). Lần sau muốn chạy lại chương trình, chỉ cần chạy lại chương trình đã được dịch.
Ví dụ: khi soạn xong 1 chương trình pascal hoặc C, sau khi biên dịch bạn sẽ được chương trình dạng mã máy (.exe)
khi biên dịch 1 chương trình viết bằng java, sau khi biên dịch bạn sẽ được chương trình dạng mã byte (byte code)
Trình thông dịch: sau khi bạn soạn thảo một chương trình bằng 1 ngôn ngữ lập trình nào đấy (mã nguồn), thì quá trình thông dịch là quá trình xảy ra lúc runtime, trình thông dịch sẽ dịch từng lệnh của chương trình bạn và thực thi. Lần sau muốn chạy lại chương trình thì phải thông dịch lại.
Ví dụ: php hoặc asp. Mỗi khi bạn chạy website, trình thông dịch sẽ dịch lại từ đầu mã nguồn và thực thi.
Một số ngôn ngữ dạng nửa biên dịch, nửa thông dịch như:Java: sau khi biên dịch sẽ được byte code. Khi chạy chương trình (runtime) sẽ là quá trình thông dịch.
Nếu nói nôm na 1 cách đại khái:
Trình biên dịch giống như 1 nhà dịch thuật. Giả sử ông ta dịch 1 cuốn sách từ English sang Vietnamese. Thì với những người không cần biết nội dung cuốn English thế nào, chỉ cần cầm cuốn Vietnamese là đọc và hiểu.
Nhưng trình thông dịch lại giống 1 thông dịch viên. Ví dụ khi giao tiếp với người nước ngoài, bạn cần thuê 1 thông dịch viên dịch cho bạn hiểu những gì họ nói. Xong xuôi đâu đấy, lần sau nếu bạn muốn hiểu những gì họ nói thì lại thuê thông dịch viên tiếp.
Trình biên dịch: làm công việc chuyển các câu lệnh được gõ bằng 1 ngôn ngữ lập trình nào đấy (gọi là mã nguồn) sang một chương trình tương đương nhưng bằng một ngôn ngữ máy tính mới (gọi là chương trình đích). Lần sau muốn chạy lại chương trình, chỉ cần chạy lại chương trình đã được dịch.
Ví dụ: khi soạn xong 1 chương trình pascal hoặc C, sau khi biên dịch bạn sẽ được chương trình dạng mã máy (.exe)
khi biên dịch 1 chương trình viết bằng java, sau khi biên dịch bạn sẽ được chương trình dạng mã byte (byte code)
Trình thông dịch: sau khi bạn soạn thảo một chương trình bằng 1 ngôn ngữ lập trình nào đấy (mã nguồn), thì quá trình thông dịch là quá trình xảy ra lúc runtime, trình thông dịch sẽ dịch từng lệnh của chương trình bạn và thực thi. Lần sau muốn chạy lại chương trình thì phải thông dịch lại.
Ví dụ: php hoặc asp. Mỗi khi bạn chạy website, trình thông dịch sẽ dịch lại từ đầu mã nguồn và thực thi.
Một số ngôn ngữ dạng nửa biên dịch, nửa thông dịch như:Java: sau khi biên dịch sẽ được byte code. Khi chạy chương trình (runtime) sẽ là quá trình thông dịch.
Nếu nói nôm na 1 cách đại khái:
Trình biên dịch giống như 1 nhà dịch thuật. Giả sử ông ta dịch 1 cuốn sách từ English sang Vietnamese. Thì với những người không cần biết nội dung cuốn English thế nào, chỉ cần cầm cuốn Vietnamese là đọc và hiểu.
Nhưng trình thông dịch lại giống 1 thông dịch viên. Ví dụ khi giao tiếp với người nước ngoài, bạn cần thuê 1 thông dịch viên dịch cho bạn hiểu những gì họ nói. Xong xuôi đâu đấy, lần sau nếu bạn muốn hiểu những gì họ nói thì lại thuê thông dịch viên tiếp.
haitrang_I83C- Tổng số bài gửi : 6
Join date : 22/09/2009
Re: Phân biệt Thông dịch và Biên dịch
Mình cũng đóng góp ý kiến về biên dịch và thông dịch.
Theo mình nghĩ:
1.Trình biên dịch: dịch mã nguồn ra mã máy để cho CPU(bộ vi xử lí) xử lí.Mỗi ngôn ngữ sẽ có 1 trình biên dịch riêng.Thí dụ java có trình biên dịch java. Khi một lập trình viên viết 1 chương trình máy tính xong thì anh ta cần phải biên dịch nó (file nguồn) ra mã máy(thường là file.exe) để chạy.
2.Tuy nhiên không phải bộ vi xử lí hay hệ điều hành nào cũng hiểu được mã máy mà trình biên dịch vừa dịch ra(hay nói cách khác là bộ xử lí hiểu được ngôn ngữ này nhưng lại không hiểu ngôn ngữ khác). Cho nên ta cần phải có trình thông dịch(đóng vai trò như 1 thông dịch viên) để diễn giải cho CPU (bộ xử lí) hiểu.
các bạn cho ý kiến về ý kiến của mình nhé.
Theo mình nghĩ:
1.Trình biên dịch: dịch mã nguồn ra mã máy để cho CPU(bộ vi xử lí) xử lí.Mỗi ngôn ngữ sẽ có 1 trình biên dịch riêng.Thí dụ java có trình biên dịch java. Khi một lập trình viên viết 1 chương trình máy tính xong thì anh ta cần phải biên dịch nó (file nguồn) ra mã máy(thường là file.exe) để chạy.
2.Tuy nhiên không phải bộ vi xử lí hay hệ điều hành nào cũng hiểu được mã máy mà trình biên dịch vừa dịch ra(hay nói cách khác là bộ xử lí hiểu được ngôn ngữ này nhưng lại không hiểu ngôn ngữ khác). Cho nên ta cần phải có trình thông dịch(đóng vai trò như 1 thông dịch viên) để diễn giải cho CPU (bộ xử lí) hiểu.
các bạn cho ý kiến về ý kiến của mình nhé.
lethien14- Tổng số bài gửi : 6
Join date : 21/09/2009
Re: Phân biệt Thông dịch và Biên dịch
Nguon: http://thanhcuong.wordpress.com
Sự khác biệt giữa trình biên dịch và IDE – Difference between popular compliers and IDEs
Chúng ta thường nhầm lẫn về sự khác biệt giữa trình biên dịch (Complier) và môi trường phát triển tích hợp (IDE). Có lẽ đó là do thực tế các IDE thường đi kèm với một trình biên dịch. Bài viết này sẽ nêu ra một số điểm khác biệt giữa compliers và IDEs để chúng ta hiểu rõ hơn về 2 khái niệm này.
Trước khi đi vào so sánh complier và IDE thì ta nên tìm hiểu về khái niệm của chúng.
1. Trình biên dịch (complier)
- Trình biên dịch, còn gọi là phần mềm biên dịch, compiler, là mộtchươ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 (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 (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ọimã đối tượng. Cuối cùng tạo ra được file thực thi mà bạn có thể chạy
2. Môi trường phát triển tích hợp (IDE):
- IDE là viết tắt của (Integrated Development Environment) tức môi trường phát triển tích hợp.
- IDE là một loại phần mềm máy tính có công dụng giúp đỡ các lập trình viên trong việc phát triển phần mềm. (ví dụ như NetBeans IDE).
- IDE thường đi kèm với một trình biên dịch (complier) cũng như gỡ lỗi và một số tính năng cao cấp như tìm kiếm, thay thế, tự động hoàn tất (auto-completion).
- Một IDE thông thường gồm:
Một trình soạn thảo dùng để viết mã.
Một trình biên dịch (complier) hoặc thông dịch (interpreter).
Trình gỡ lỗi (debuger) hỗ trợ dò tìm lỗi….
3. So sánh complier và IDE:
- Compliers
+ Có rất nhiều trình biên dịch phổ biến, trong đó có GNU Complier Collection (GCC) bao gồm gcc và g++ (GNU C complier và GNU C++ complier) và Microsoft Visual C và Visual C++ compliers.
GNU là viết tắt của GUJARAT NATIONAL UNIVERSITY.
+ Có rất nhiều trình biên dịch có các tính chất khác nhau như: Borland C/ C++, Intel C++ và [Open]Watcom complier. Chúng ta sẽ tập trung vào gcc và Visual C trong bài viết này vì nó là phổ biến nhất.
- gcc / g++:
Miễn phí, nguồn mở – gcc có thể được sửa đổi, và nó có thể được phát triển bởi hoặc phân phối bởi bất kỳ ai theo cấp phép của GNU General Public License (GPL).
Đa nền tảng (cross-platform) – gcc là một mã nguồn mở (open source), do đó nó thành công trong việc chuyển đến nhiều nền tảng khác nhau như: Linux, Microsoft, MAC OS. Nếu bạn đang sử dụng Linux thì gần như chắc chắn gcc đã được cài đặt sẵn. Bạn có thể cài đặt g++ một cách riêng biệt.
Nhanh – hiện đại, tối ưu hóa trình biên dịch gcc cung cấp các mã tương đối hiệu quả.
- Microsoft visual C/ C++
Thường có một phiên bản miễn phí nằm trong bộ Visual Express và bản tính phí nằm trong bản chính thức của bộ visual studio.
Trình gỡ lỗi (debugger) – thông thường thì trình gỡ lỗi của bộ visual studio rất mạnh và được cộng đồng lập trình ca ngợi.
- Trình biên dịch khác
Tồn tại song song với những trình biên dịch kể trên, phải kể đến OpenWatcom và Intel C++. Watcom là đa nền tảng (Windows, MS-Dos, Linux…) tối ưu hóa các trình biên dịch có thể cung cấp mã 16 bit (điều này gcc không thể làm được). Intel C++ là một trình biên dịch cung cấp rất kỹ lưỡng khả năng tối ưu hóa.
- IDE (Integrated Development Environment)
Các IDE phổ biến gồm:
DEV-C++ (lưu ý: bạn có thể sử dụng wxDev-C++ thay vì Dev-C++ vì đã rất lâu Dev-C++ chưa có bản cập nhật nào).
Code:: Bocks.
NetBeans.
Microsoft Visual Studio (phiên bản mới nhất hiện nay là Visual studio 2010).
Eclipse.
KDevelop.
Nguon: http://thanhcuong.wordpress.com
Sự khác biệt giữa trình biên dịch và IDE – Difference between popular compliers and IDEs
Chúng ta thường nhầm lẫn về sự khác biệt giữa trình biên dịch (Complier) và môi trường phát triển tích hợp (IDE). Có lẽ đó là do thực tế các IDE thường đi kèm với một trình biên dịch. Bài viết này sẽ nêu ra một số điểm khác biệt giữa compliers và IDEs để chúng ta hiểu rõ hơn về 2 khái niệm này.
Trước khi đi vào so sánh complier và IDE thì ta nên tìm hiểu về khái niệm của chúng.
1. Trình biên dịch (complier)
- Trình biên dịch, còn gọi là phần mềm biên dịch, compiler, là mộtchươ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 (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 (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ọimã đối tượng. Cuối cùng tạo ra được file thực thi mà bạn có thể chạy
2. Môi trường phát triển tích hợp (IDE):
- IDE là viết tắt của (Integrated Development Environment) tức môi trường phát triển tích hợp.
- IDE là một loại phần mềm máy tính có công dụng giúp đỡ các lập trình viên trong việc phát triển phần mềm. (ví dụ như NetBeans IDE).
- IDE thường đi kèm với một trình biên dịch (complier) cũng như gỡ lỗi và một số tính năng cao cấp như tìm kiếm, thay thế, tự động hoàn tất (auto-completion).
- Một IDE thông thường gồm:
Một trình soạn thảo dùng để viết mã.
Một trình biên dịch (complier) hoặc thông dịch (interpreter).
Trình gỡ lỗi (debuger) hỗ trợ dò tìm lỗi….
3. So sánh complier và IDE:
- Compliers
+ Có rất nhiều trình biên dịch phổ biến, trong đó có GNU Complier Collection (GCC) bao gồm gcc và g++ (GNU C complier và GNU C++ complier) và Microsoft Visual C và Visual C++ compliers.
GNU là viết tắt của GUJARAT NATIONAL UNIVERSITY.
+ Có rất nhiều trình biên dịch có các tính chất khác nhau như: Borland C/ C++, Intel C++ và [Open]Watcom complier. Chúng ta sẽ tập trung vào gcc và Visual C trong bài viết này vì nó là phổ biến nhất.
- gcc / g++:
Miễn phí, nguồn mở – gcc có thể được sửa đổi, và nó có thể được phát triển bởi hoặc phân phối bởi bất kỳ ai theo cấp phép của GNU General Public License (GPL).
Đa nền tảng (cross-platform) – gcc là một mã nguồn mở (open source), do đó nó thành công trong việc chuyển đến nhiều nền tảng khác nhau như: Linux, Microsoft, MAC OS. Nếu bạn đang sử dụng Linux thì gần như chắc chắn gcc đã được cài đặt sẵn. Bạn có thể cài đặt g++ một cách riêng biệt.
Nhanh – hiện đại, tối ưu hóa trình biên dịch gcc cung cấp các mã tương đối hiệu quả.
- Microsoft visual C/ C++
Thường có một phiên bản miễn phí nằm trong bộ Visual Express và bản tính phí nằm trong bản chính thức của bộ visual studio.
Trình gỡ lỗi (debugger) – thông thường thì trình gỡ lỗi của bộ visual studio rất mạnh và được cộng đồng lập trình ca ngợi.
- Trình biên dịch khác
Tồn tại song song với những trình biên dịch kể trên, phải kể đến OpenWatcom và Intel C++. Watcom là đa nền tảng (Windows, MS-Dos, Linux…) tối ưu hóa các trình biên dịch có thể cung cấp mã 16 bit (điều này gcc không thể làm được). Intel C++ là một trình biên dịch cung cấp rất kỹ lưỡng khả năng tối ưu hóa.
- IDE (Integrated Development Environment)
Các IDE phổ biến gồm:
DEV-C++ (lưu ý: bạn có thể sử dụng wxDev-C++ thay vì Dev-C++ vì đã rất lâu Dev-C++ chưa có bản cập nhật nào).
Code:: Bocks.
NetBeans.
Microsoft Visual Studio (phiên bản mới nhất hiện nay là Visual studio 2010).
Eclipse.
KDevelop.
Nguon: http://thanhcuong.wordpress.com
TranHuyCuong17 (I12A)- Tổng số bài gửi : 37
Join date : 16/02/2012
Age : 37
Đến từ : DLY™
Similar topics
» Thảo luận Bài 3
» Câu 2/bài 3: Trình bày chức năng của bộ thông dịch lệnh, phân tích vai trò của bộ thông dịch, phân biệt thông dịch và biên dịch?
» Thảo luận Bài 3
» PHÂN TÍCH VAI TRÒ - CHỨC NĂNG CỦA BỘ THÔNG DỊCH LỆNH. QUA ĐÓ PHÂN BIỆT THÔNG DỊCH - BIÊN DỊCH ?
» Thảo luận Bài 3
» Câu 2/bài 3: Trình bày chức năng của bộ thông dịch lệnh, phân tích vai trò của bộ thông dịch, phân biệt thông dịch và biên dịch?
» Thảo luận Bài 3
» PHÂN TÍCH VAI TRÒ - CHỨC NĂNG CỦA BỘ THÔNG DỊCH LỆNH. QUA ĐÓ PHÂN BIỆT THÔNG DỊCH - BIÊN DỊCH ?
» 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