[Bài 1] Giới thiệu về C++

[Bài 1] Giới thiệu về C++

Tổng quan về C++

Chào mừng bạn đã đến với khóa học Lập trình C++ từ cơ bản đến nâng cao. Đây là khóa học cơ sở cần thiết đối với các bạn trong các chương trình về công nghệ phần mềm hoặc khoa học máy tính ở các trường đại học. Mặc dù C++ đã ra đời khá lâu, và là một trong những ngôn ngữ cổ điển tuy nhiên hiện nay nó vẫn được sử dụng hết sức phổ biến và cũng là một ngôn ngữ lập trình nên học khi mới bắt đầu để hiểu rõ hơn về cách máy tính hoạt động cũng như các khái niệm cơ sở chuyên sâu khá hữu ích giúp bạn có được tư duy thuật toán và tối ưu hóa thuật toán tốt hơn sau này. Trong bài đầu tiên của khóa học này, chúng ta hãy cùng điểm qua đôi chút về lịch sử cũng như một số yếu tổ quan trọng của ngôn ngữ lập trình C++.

C++ là gì?

C++ là một ngôn ngữ lập trình hướng đối tượng, với mục tiêu xây dựng các ứng dụng đa dạng nền tảng được phát triển bởi Bjarne Stroustrup vào năm 1979. Nó là một phiên bản mở rộng của ngôn ngữ lập trình C. Tùy thuộc vào yêu cầu của chúng ta, chúng ta có thể sử dụng C++ để viết đoạn mã theo “kiểu C” hoặc theo “kiểu hướng đối tượng” như C++. Tức là về cơ bản các cú pháp đã được sử dụng trong ngôn ngữ C vẫn sẽ sử dụng được trong C++.

Các tính năng của C++

Một số đặc điểm về lập trình ngôn ngữ C++ bao gồm:

  • Tính đơn giản: Đây là một ngôn ngữ đơn giản theo nghĩa là các chương trình có thể được chia nhỏ thành các đơn vị hợp lý, có hỗ trợ thư viện phong phú và nhiều kiểu dữ liệu khác nhau. Số lượng từ khóa không nhiều.
  • Phụ thuộc vào nền tảng: Tệp thực thi C++ khi biên dịch sẽ phụ thuộc vào nền tảng và môi trường hoạt động, các chương trình đã biên dịch trên Linux sẽ không thể được thực thi trên Windows và ngược lại.
  • Ngôn ngữ bậc trung: Hỗ trợ tương tác với kiến trúc máy tính cấp thấp đồng thời cũng hỗ trợ những khái niệm lập trình phức tạp bậc cao như hàm và đối tượng. Điều này cho phép chúng ta có thể thực hiện cả lập trình hệ thống (driver, nhân, mạng,...) và xây dựng các ứng dụng người dùng quy mô lớn (Photoshop, trò chơi,...) một cách dễ dàng.
  • Hỗ trợ thư viện phong phú: C++ hỗ trợ một số lượng thư viện rất đa dạng.
  • Tốc độ thực thi: Các chương trình C++ vượt trội về tốc độ thực thi. Vì nó là một ngôn ngữ đã được biên dịch và cũng mang tính thủ tục cao. Các ngôn ngữ mới hơn có thêm các tính năng mặc định được tích hợp sẵn như thu gom rác, định kiểu dữ liệu động, điều này tuy an toàn hơn nhưng lại làm chậm quá trình thực thi chương trình. C++ không tự động hỗ trợ các tính năng này nên tốc độ thực thi nhanh hơn.
  • Hướng đối tượng: Một trong những điểm mạnh nhất của ngôn ngữ này là hỗ trợ lập trình hướng đối tượng nhằm tạo ra các chương trình có thể dễ quản lý và có thể mở rộng.

Lịch sử phát triển của C++

Năm 1979, Bjarne Stroustrup, đã tìm thấy ngôn ngữ Simula, hỗ trợ mô hình lập trình hướng đối tượng. Ông đã nghĩ đến việc triển khai mô hình hướng đối tượng trong phát triển phần mềm nhưng Simula rất chậm trong việc áp dụng vào thực tế. Do đó, ông đã cố gắng mở rộng thêm mô hình hướng đối tượng bằng ngôn ngữ C mà không làm ảnh hưởng đến tốc độ và các chức năng mức thấp hơn của nó. Từ đó, C++ ra đời với tên gọi đầu tiên là “C with classes”.

Cfront là trình biên dịch "C with classes" đầu tiên. Nó có nguồn gốc từ một trình biên dịch C có tên là CPre. Cfront được sử dụng để dịch mã của “C with classes” sang C thông thường.

  • Năm 1983, "C with classes" được đổi tên thành C++. "++" là một toán tử tăng lên 1 đơn vị, nhằm đưa ra thông tin ám chỉ rằng C++ là một phần mở rộng của ngôn ngữ C.

  • Năm 1985, C++ được xuất bản là một sản phẩm thương mại.

  • Năm 1990, "The Annotated C++ Reference Manual" được xuất bản.

  • Năm 1998, Ủy ban tiêu chuẩn C++ đã xuất bản tiêu chuẩn quốc tế đầu tiên cho C++, có tên là ISO C++ 98.

  • Vào năm 2003, một số lỗi trong C++ 98 đã được sửa và một phiên bản C mới có tên là C++ 03 đã được giới thiệu.

  • Sau đó, các phiên bản khác nhau có tên là C++11, C++14 và C++17 được xuất bản.

Tại sao sử dụng C++?

C++ được sử dụng rộng rãi trong các hệ thống nhúng, trình duyệt, giao diện người dùng đồ họa, trình phát nhạc, trò chơi điện tử, hệ điều hành, trình biên dịch, các thiết bị điều khiển hệ thống, cơ sở dữ liệu và điện toán đám mây ngày nay.

  • C++ hỗ trợ lập trình hướng đối tượng. Do đó, nó làm giảm chi phí lập trình bằng cách đưa ra cấu trúc rõ ràng cho chương trình và cho phép đoạn mã có thể tái sử dụng.
  • Cú pháp của C++ gần giống với C# và Java. Do đó, lập trình viên có thể dễ dàng chuyển đổi giữa các ngôn ngữ này.
  • Đảm bảo tính hiệu quả của việc thực thi có thể can thiệp và chạy trực tiếp trên các nền tảng phần cứng và hiệu hành một cách hiệu quả.
  • Thú vị và dễ học.
  • Giúp hiểu sâu các kiến thức cơ bản về máy tính, cách thức tương tác xử lý bộ nhớ và tối ưu hóa chương trình, các khái niệm về kiểu dữ liệu giúp xây chắc kiến thức nền tảng hơn để có thể dễ dàng tiếp cận các khái niệm và ngôn ngữ lập trình khác.

Những công ty nào đang sử dụng C++?

Nhiều công ty nổi tiếng sử dụng C++ cho việc triển khai các thành phần quan trọng của hệ thống, bao gồm:

  • Google: Google đã viết các thành phần bằng ngôn ngữ lập trình C++, bao gồm trình duyệt Google Chromium và hệ thống tập tin Google.
  • Bloomberg: Bloomberg có thể dễ dàng nhanh chóng cung cấp thông tin về tài chính thị trường cho các nhà đầu tư trên thế giới.
  • MySQL: MySQL là hệ thống quản trị cơ sở dữ liệu quan hệ mã nguồn mở được sử dụng thường xuyên nhất.
  • Microsoft: Microsoft là một công ty công nghệ có trụ sở tại Mỹ. Trong nhiều năm, Microsoft Windows là hệ điều hành được sử dụng nhiều nhất trên thế giới. Hầu hết các thành phần của Microsoft Windows được viết bằng ngôn ngữ C ++.
  • Adobe: Hầu hết các ứng dụng Adobe được viết bằng ngôn ngữ lập trình C++. Ví dụ bao gồm Adobe Illustrator, Adobe Photoshop và Adobe Premier.

Trong bài tiếp theo, chúng ta sẽ bắt đầu với những bài đầu tiên về C++.

Lập trình C++ cơ bản