Ngôn ngữ lập trình C và C++

Ngôn ngữ lập trình C và C++ là hai ngôn ngữ thông dụng nhất thường được sử dụng để giới thiệu cho các lập trình viên mới vào nghề. Tại sao chúng thường đi kèm với nhau? C và C++ giống và khác nhau điểm nào hãy cùng tìm hiểu.

ngon-ngu-lap-trinh-C-C++-itnavi-21052020
Tìm hiểu về ngôn ngữ lập trình C và C++.

1. Ngôn ngữ lập trình C

Ngôn ngữ lập trình C là ngôn ngữ lập trình được tạo bởi Dennis Ritchie xuất hiện vào năm 1972, ngôn ngữ này được phát triển để sử dụng trong hệ điều hành UNIX. Nó chủ yếu được sử dụng để tạo các phần mềm hệ thống nhưng cũng khá hữu ích để tạo các phần mềm ứng dụng. Ngôn ngữ C xuất hiện hầu hết trong những hệ điều hành lớn như Windows, Linux,…  

C là ngôn ngữ lập trình hỗ trợ cấu trúc khối, lệnh, và ngôn ngữ thủ tục. Từ khi ra đời ngôn ngữ C đã cho thấy tính hiệu quả và linh hoạt của nó. Các cấu trúc của C rõ ràng, dễ hiểu dễ viết. Mã lệnh viết bằng C có thể biên dịch và chạy trên các máy. Bên cạnh đó là khả năng bảo trì và tái sử dụng mã nguồn trong các dự án khác nhau.

Sử dụng ngôn ngữ C có thể tạo ra 1 ứng dụng gồm nhiều các module chức năng, mỗi module chứa nhiều hàm chức năng, các hàm này có thể được truy xuất bởi bất kỳ nơi nào khác ngoài module chứa nó.

ngon-ngu-lap-trinh-C-C++-itnavi-21052020-01
Ngôn ngữ lập trình C là ngôn ngữ lập trình được tạo bởi Dennis Ritchie xuất hiện vào năm 1972

2. Ngôn ngữ lập trình C++

C++ ra đời năm 1985 do Bjarne Stroustrup, nó được phát triển trên nền tảng của C nhưng mở rộng hơn để trở thành ngôn ngữ lập trình hướng đối tượng. Do đó mà chúng ta có thể lập trình C++ theo cấu trúc lập trình C hoặc sử dụng cách lập trình hướng đối tượng. Hoặc cũng có thể làm cả 2 cách.

ngon-ngu-lap-trinh-C-C++-itnavi-21052020-02
C++ được phát triển trên nền tảng của C.

 

Trong lập trình C++ các ứng dụng được viết theo hướng đối tượng là 1 tập các đối tượng tương tác lẫn nhau, C++ cung cấp phát biểu “Class” để người lập trình đặc tả các đối tượng cấu thành ứng dụng. Tuy nhiên, mức độ hỗ trợ hướng đối tượng của C++ còn yếu, không rõ ràng và dễ làm người lập trình mắc lỗi trong quá trình viết code.

So với các ngôn ngữ lập trình khác thì C++ chỉ được coi là ngôn ngữ lập trình bậc trung vì hỗ trợ những tính năng bậc thấp, can thiệp sâu vào hệ thống của C, và hỗ trợ cả những tính năng bậc cao giống như C#, Java, …

C++ hỗ trợ đầy đủ lập trình hướng đối tượng, bao gồm 4 tính năng cốt lõi của lập trình hướng đối tượng là:

  •         Tính bao đóng (Encapsulation)
  •         Ẩn dữ liệu (Data hiding)
  •         Tính kế thừa (Inheritance)
  •         Tính đa hình (Polymorphism)

3. So sánh ngôn ngữ lập trình C và C++

Giống nhau

Chính vì C++ được mở rộng từ C nên điểm giống nhau của chúng sẽ là tất cả những gì có từ ngôn ngữ C:

  •         Có cùng cú pháp và cách viết code.
  •         Cấu trúc code giống nhau
  •         Bộ biên dịch code giống nhau (không phải 100%, tuy nhiên các bộ biên dịch/compiler mới đều hỗ trợ cả 2 ngôn ngữ)
  •         Mô hình bộ nhớ giống nhau và đều khá gần với phần cứng
  •         Cùng có các khái niệm như stack, heap, file-scope, static variables…

Hai ngôn ngữ này có cấu trúc lệnh tương đối sáng, dễ học, dễ nhớ, lại có thể viết theo hướng cấu trúc và hướng đối tượng nên thường được sử dụng làm môn học cơ sở cho người mới lập trình. Một ưu điểm nữa là do cấu trúc của C/C++ khá giống với các ngôn ngữ khác nên khi học tốt được 2 ngôn ngữ này thì việc tìm hiểu cú pháp lệnh của các ngôn ngữ khác cũng sẽ đơn giản hơn.

ngon-ngu-lap-trinh-C-C++-itnavi-21052020-03
So sánh ngôn ngữ lập trình C và C++

Khác nhau

C C++
Không phải ngôn ngữ hướng đối tượng. Là một ngôn ngữ hướng đối tượng (gồm 4 khái niệm về hướng đối tượng)
C là ngôn ngữ lập trình thủ tục. Không phải là ngôn ngữ lập trình thủ tục.
Chỉ hỗ trợ các structure. Hỗ trợ các lớp và đối tượng.
Không có biến tham chiếu, có hỗ trợ con trỏ. Hỗ trợ biến tham chiếu và con trỏ.
Sử dụng các hàm scanf để nhập và printf để xuất. Sử dụng các hàm cin>> để nhập và cout<< để xuất.
Không thể khai báo hàm trong các structure. Có thể khai báo hàm trong các structure
Được xem là một ngôn ngữ lập trình cấp thấp. Được xem là sự kết hợp giữa ngôn ngữ lập trình cấp trung
Không hỗ trợ các hàm inline, thay vào đó có thể sử dụng khai báo #define Hỗ trợ các hàm inline.
Sử dụng phương pháp tiếp cận từ trên xuống (top-down). Sử dụng phương pháp tiếp cận từ dưới lên  (bottom-up).
Là ngôn ngữ lập trình hướng chức năng (function driven). Là ngôn ngữ lập trình hướng đối tượng (Object driven).

4. Cải tiến của C++ so với C

  • Ngôn ngữ hướng đối tượng.
  • Ngôn ngữ định kiểu rất mạnh.
  • Cung cấp cách truyền tham số bằng tham chiếu cho hàm.
  • Cung cấp cơ cấu thư viện để người lập trình có thể tự tạo thêm hàm thông dụng vào thư viện và có thể tái sử dụng sau này.
  • Cung cấp một cơ chế đa dạng hóa tên hàm và toán tử.
  • Cung cấp các lớp (Class) là loại cấu trúc mới đóng gói chung cho cả dữ liệu lẫn các hàm trong một chủ thể được bảo vệ một cách chặt chẽ. 

C++ được bắt nguồn từ C, thừa hưởng rất nhiều các cấu trúc, câu lệnh từ C nhưng trên thực tế người dùng có thể lập trình C++ theo phòng cách C hoặc sử dụng phòng cách của C++. Ngôn ngữ lập trình C và C++ là hai ngôn ngữ ra đời được khá lâu và cũng có rất nhiều những yếu điểm về tốc độ và quản lý bộ nhớ nhưng vấn là những ngôn ngữ được sử dụng khá nhiều trong lập trình.

Tags: ,

codenobug

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *