Trình biên dịch (compiler) là một chương trình đặc biệt, có chức năng dịch mã nguồn (source code) của một ngôn ngữ lập trình cấp cao sang một ngôn ngữ cấp thấp hơn như hợp ngữ, byte code hoặc mã máy.
Có nhiều C++ compiler khác nhau nhưng chức năng dịch C++ là như nhau. Chúng ta có thể sử dụng bất kỳ trình biên dịch nào mà chúng ta thích. Bạn hãy cứ xem các compiler này là như nhau. Giống như có nhiều phiên dịch viên tiếng Anh và khi nói chuyện với cầu thủ David Beckham thì chúng ta thuê phiên dịch viên nào cũng đều dịch đúng và chính xác.
Trong bài này, chúng ta cùng điểm qua các C++ compiler phổ biến bên dưới.
1. Các trình biên dịch C++
1.1. Trình biên dịch gcc và g++
GCC (GNU Compiler Collection) là một tập hợp các trình biên dịch được thiết kế cho nhiều ngôn ngữ lập trình khác nhau. Ví dụ như C/C++, Fortran, Pascal, Objective C, Java, Ada, Go,… Trong GCC, mỗi ngôn ngữ có trình biên dịch riêng, C/C++ cũng vậy:
- gcc là trình biên dịch chính cho ngôn ngữ lập trình C. Bạn có thể sử dụng nó để biên dịch mã nguồn C thành mã máy.
- g++ là trình biên dịch chính cho ngôn ngữ lập trình C++. Bạn sử dụng nó để biên dịch mã nguồn C++ thành mã máy.
GCC là một phần trong dự án GNU (GNU’s Not Unix). Dự án GNU được Richard Stallman sáng lập và phát triển bởi Free Software Foundation (FSF) do Richard Stallman làm chủ tịch. Dự án GNU có sự mệnh tạo ra các phần mềm tự do, hầu hết được cấp phép theo General Public License (GPL).
Trình biên dịch GCC được hỗ trợ trên các hệ điều hành khác nhau như Linux, MacOS, Windows,… GCC đã tương thích với rất nhiều nền tảng kiến trúc máy tính như ARM, Atmel AVR, IA-32 (x86), x86-64, IA-64,… Có thể nói, GCC đóng một vai trò quan trọng trong lịch sử phát triển phần mềm tự do từ đó đến nay.
1.2. Trình biên dịch Borland C++
Borland C++ compiler là một C++ compiler của công ty phần mềm Borland. Trước đây, công ty này đã phát hành một phiên bản C++ có tên Turbo C++ rất phổ biến để lập trình trong môi trường DOS.
Phiên bản Borland C++ compiler phổ biến là Borland C++ 5.5. Nó được phát hành miễn phí và có khả năng biên dịch mã nguồn C++ cho Windows.
1.3. Trình biên dịch Clang
Trình biên dịch Clang là một trình biên dịch mã nguồn mở được phát triển bởi dự án LLVM (Low Level Virtual Machine). Clang nổi tiếng với tốc độ biên dịch nhanh và thông báo lỗi dễ đọc. Ban đầu, Clang được thiết kế để biên dịch C và C++, nhưng sau đó đã mở rộng để hỗ trợ nhiều ngôn ngữ khác nhau.
Clang là một trình biên dịch mạnh mẽ và phổ biến trong cộng đồng phát triển C/C++. Nó cung cấp nhiều tính năng tiên tiến và hỗ trợ nhiều phiên bản của ngôn ngữ C++ (như C++11, C++14, C++17, C++20 và nhiều phiên bản khác).
1.4. Trình biên dịch Intel C++
Trình biên dịch Intel C++ còn được gọi là Intel C++ Compiler hoặc icc. Intel C++ được tập đoàn Intel tạo ra để biên dịch và tối ưu hóa mã nguồn C và C++ cho các hệ thống chạy trên bộ xử lý Intel. Intel C++ hiện hỗ trợ các hệ điều hành Windows, Linux và macOS.
1.5. Trình biên dịch Visual C++
Trình biên dịch Visual C++ (VC++) là một phần của Visual Studio, môi trường phát triển tích hợp (IDE) phát triển bởi Microsoft. VC++ được sử dụng để biên dịch và phát triển ứng dụng C++ trên hệ điều hành Windows.
Visual C++ hỗ trợ nhiều phiên bản của ngôn ngữ C++ và có nhiều tính năng mạnh mẽ cho phát triển ứng dụng trên nền tảng Windows. Nó cũng cung cấp khả năng gỡ lỗi (debug) mạnh mẽ để tìm và sửa lỗi một cách nhanh chóng và chính xác.
1.7. Trình biên dịch TDM-GCC
TDM-GCC là một bản phân phối của GCC (GNU Compiler Collection) được thiết kế đặc biệt cho nền tảng Windows. Các IDE như Code::Blocks và Dev-C++ sử dụng TDM-GCC làm trình biên dịch C/C++ chính.
2. Các bộ công cụ phát triển ứng dụng C++
Các trình biên dịch thường là một phần của các bộ công cụ phát triển phần mềm C/C++. Khi chúng ta cài đặt các bộ công cụ này thì chúng ta đã có sẵn các trình biên dịch C/C++ để sử dụng mà không cần cài đặt thêm gì cả. Có 2 bộ công cụ phát triển phần mềm C/C++ nổi tiếng là MingGW và Cygwin.
2.1. Bộ công cụ MinGW
MinGW (Minimalist GNU for Windows) là một tập hợp các công cụ và thư viện cho phép phát triển ứng dụng cho nền tảng Windows bằng cách sử dụng trình biên dịch GCC (GNU Compiler Collection). MinGW giúp phát triển ứng dụng C và C++ trên Windows mà không cần sử dụng các công cụ phát triển chuyên biệt từ Microsoft. Bạn có download và cài đặt MinGW tại đây hoặc tại sourceforge.net.
2.2. Bộ công cụ Cygwin
Cygwin là một tập hợp các công cụ và thư viện mã nguồn mở cho phép chạy môi trường Unix/Linux trên hệ điều hành Windows. Nó cung cấp một bộ công cụ thực hiện tương tự như Unix, bao gồm trình biên dịch GCC (GNU Compiler Collection), các lệnh dòng lệnh, và các thư viện hữu ích. Bạn có download và cài đặt Cygwin tại đây.