Trang tài liệu
Khóa học C++ nền tảng
Chương 16. Trình biên dịch
Trình biên dịch

Trình biên dịch

Trình biên dịch là một chương trình máy tính dịch mã code nguồn được viết bằng một ngôn ngữ lập trình sang một ngôn ngữ khác, thường là mã code máy hoặc mã code hợp ngữ, có thể được thực thi trực tiếp bởi bộ xử lý của máy tính. Trong ngữ cảnh của C++, các trình biên dịch lấy mã nguồn C++ đã viết của bạn và chuyển đổi nó thành một chương trình thực thi được.

Trình biên dịch C++ phổ biến

Có một số trình biên dịch C++ phổ biến hiện có, đây là danh sách ngắn một số trình biên dịch phổ biến:

  • Tập hợp trình biên dịch GNU (GCC): Được phát triển bởi Dự án GNU, GCC là trình biên dịch nguồn mở hỗ trợ nhiều ngôn ngữ lập trình, bao gồm C++.
  • Clang: Là một phần của dự án LLVM, Clang là một trình biên dịch nguồn mở khác hỗ trợ C++ và được biết đến với thời gian biên dịch nhanh và chẩn đoán mở rộng.
  • Microsoft Visual C++ (MSVC): MSVC là trình biên dịch thương mại do Microsoft cung cấp như một phần của Visual Studio và được sử dụng rộng rãi trên nền tảng Windows.
  • Trình biên dịch Intel C++ (ICC): ICC là trình biên dịch thương mại do Intel cung cấp và được biết đến với khả năng tối ưu hóa mã cho bộ xử lý Intel mới nhất.

Ví dụ về trình biên dịch C++ đơn giản

Giả sử bạn có một chương trình C++ đơn giản được lưu trong một tệp có tên hello.cpp:

#include <iostream>
 
int main() {
  std::cout << "Hello, World!" << std::endl;
  return 0;
}

Bạn có thể biên dịch chương trình này bằng trình biên dịch GCC bằng cách thực hiện lệnh sau trong dòng lệnh/thiết bị đầu cuối:

g++ hello.cpp -o hello

Thao tác này sẽ tạo ra một tệp thực thi có tên hello (hoặc hello.exe trên Windows) mà bạn có thể chạy để xem kết quả đầu ra “Hello, World!“.

Chú ý

Khi tìm hiểu về trình biên dịch, điều cần thiết là phải biết rằng chúng hoạt động chặt chẽ với trình liên kết và thư viện chuẩn. Trình liên kết đảm nhiệm việc kết hợp các tệp đối tượng và thư viện đã biên dịch thành một tệp thực thi duy nhất, trong khi thư viện chuẩn cung cấp các triển khai cho các chức năng phổ biến được sử dụng trong mã code của bạn.