Trong lĩnh vực IT, mọi người đều biết C, C++. Nhưng có lẽ không có nhiều người biết được những khác biệt về 2 ngôn ngữ lập trình này.
Vậy, C và C++ khác nhau chỗ nào?
C++ là ngôn ngữ ra đời sau ngôn ngữ C, nó mở rộng cho ngôn ngữ C. Hơn nữa, C++ nhằm tăng cường tính an toàn, các lập trình viên sẽ có nhiều lựa chọn hơn và đơn giản hóa lập trình .
Đặc biệt ngôn ngữ C++ còn cung cấp cách tiếp cận tốt hơn đối với các chương trình có quy mô lớn. Ngoài ra, C++ cũng là ngôn ngữ lớn hơn, sở hữu nhiều tính năng và phức tạp hơn so với ngôn ngữ C. Điểm khác biệt cơ bản của C và C++ đó là:
-C: Là một ngôn ngữ lập trình thủ tục. Nó không có biến tham chiếu, chỉ hỗ trợ con trỏ
-C++: Ngôn ngữ hướng đối tượng, có hỗ trợ cả biến tham chiếu và con trỏ.
Ngôn ngữ lập trình C
C là ngôn ngữ lập trình bậc cao được phát triển ban đầu bởi Dennis M.Ritchie để phát triển hệ thống lập trình UNIX ở Bell Labs. C được phát triển ban đầu trên máy tính DEC PDP-11 năm 1972.
Năm 1978, Brian Kernighan và Dennis Ritchie công khai bản mô tả đầu tiên của ngôn ngữ C, được biết đến dưới tên tiêu chuẩn K&R.
Hệ điều hành UNIX, bộ biên dịch C, là tất cả những gì cần thiết cho việc viết các chương trình với ngôn ngữ C. Ngôn ngữ C hiện tại được sử dụng rộng rãi trong môi trường chuyên nghiệp vì những lý do sau đây:
- Dễ dàng trong việc học
- Ngôn ngữ có cấu trúc
- Nó cung cấp các chương trình hiệu quả.
- Nó có thể xử lý các hoạt động ở tầng thấp.
- Nó được biên dịch bởi nhiều nền tảng khác nhau.
Sự thật về ngôn ngữ C
- C được phát triển ban đầu để viết Hệ điều hành có tên UNIX.
- C là ngôn ngữ kế thừa của ngôn ngữ B được giới thiệu những năm 1970.
- Ngôn ngữ được chuẩn hóa năm 1988 bởi Viện tiêu chuẩn quốc gia Hoa Kỳ (ANSI).
- Hệ điều hành UNIX viết bởi ngôn ngữ C năm 1973.
- Ngày nay C được sử dụng rộng rãi nhất trong các ngôn ngữ lập trình hệ thống.
- Hầu hết các ứng dụng lớn đều có sự kế thừa, triển khai từ ngôn ngữ C.
- Hệ điều hành Linux và hệ quản trị cơ sở dữ liệu MySQL được viết bởi ngôn ngữ C.
Tại sao lại sử dụng C?
C được phát triển ban đầu cho việc phát triển hệ thống, đặc biệt là các hệ điều hành. C được thừa nhận như là một trong các ngôn ngữ phát triển hệ thống bởi nó cung cấp code và chạy một đoạn code một các nhanh chóng như các ngôn ngữ kiểu Assemly. Vài ví dụ về sử dụng C như sau:
- Hệ điều hành
- Bộ biên dịch các ngôn ngữ
- Các chương trình dịch mã số
- Các trình Text Editor (notepad …)
- Các trình in ấn
- Network Drivers
- Các chương trình hiện đại
- Cơ sở dữ liệu
- Ngôn ngữ thông dịch
- Tiện ích
Chương trình C
Một chương trình C có thể thay đổi từ 3 dòng đến hàng triệu dòng code, và nên được viết trong một hoặc nhiều file với định dạng “.c“, ví dụ hello.c. Bạn có thể sử dụng “vi“, “vim” hoặc bất kỳ trình editor nào để viết chương trình C thành một file.
Bài hướng dẫn giả sử bạn đã biết cách sử dụng các trình soạn thảo và cách viết source code – mã nguồn bên trong một file chương trình.
Ngôn ngữ lập trình C++
C++ là một ngôn ngữ lập trình kiểu tĩnh,dữ liệu trừ tượng, phân biệt kiểu chữ thường chữ hoa mà hỗ trợ lập trình hướng đối tượng, lập trình thủ tục.
C++ được coi như là ngôn ngữ bậc trung (middle-level), khi nó kết hợp các đặc điểm và tính năng của ngôn ngữ bậc cao và bậc thấp.
C++ được phát triển bởi Bjarne Stroustrup năm 1979 tại Bell Labs ở Murray Hill, New Jersey, như là một bản nâng cao của ngôn ngữ C và với tên gọi đầu tiên là “C với các Lớp”, nhưng sau đó được đổi tên thành C++ vào năm 1983.
C++ là một Superset của C, và bất kỳ chương trình C nào cũng là một chương trình C++.
Ghi chú: Khi nói một ngôn ngữ lập trình là kiểu tĩnh khi việc kiểm tra kiểu được thực hiện trong thời gian biên dịch (compile-time), chứ không phải là run-time.
Lập trình hướng đối tượng
C++ hỗ trợ đầy đủ lập trình hướng đối tượng, bao gồm 4 tính năng trụ cột 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)
Thư việc chuẩn C++ (C++ Standard Library)
C++ chuẩn gồm 3 phần quan trọng:
- Core Language cung cấp tất cả các khối bao gồm biến, kiểu dữ liệu (data type) và literals, …
- Thư viện chuẩn C++ (C++ Standard Library) cung cấp tập hợp hàm đa dạng để thao tác file, string, …
- Standard Template Library (STL) cung cấp tập hợp phương thức đa dạng để thao tác cấu trúc dữ liệu, …
ANSI Standard
ANSI Standard bảo đảm rằng C++ là portable, nghĩa là: code bạn viết cho compiler của Microsoft sẽ được biên dịch mà không xảy ra lỗi khi sử dụng một compiler trên Mac, UNIX, và Windows box hoặc một Alpha.
ANSI Standard đã tồn tại trong thời gian dài, và tất cả C++ compiler đều hỗ trợ ANSI Standard.
Học tập C++ như thế nào?
Điều quan trọng nhất khi học tập C++ là trọng tâm vào các khái niệm.
Mục đích của việc học một ngôn ngữ lập trình là trở thành một lập trình viên giỏi hơn, tức là để thiết kế và thực thi các hệ thống mới hiệu quả hơn, hoặc sửa đổi chương trình cũ.
C++ hỗ trợ các phong cách lập trình đa dạng. Bạn có thể viết trong Fortran, C, Smalltalk, … trong bất kỳ ngôn ngữ nào. Mỗi style có thể đạt được mục tiêu của nó một cách hiệu quả trong khi duy trì runtime và space hiệu quả.
Miền sử dụng của C++
C++ được sử dụng bởi hàng nghìn lập trình viên trong mỗi lĩnh vực ứng dụng cơ bản.
C++ đang được sử dụng phổ biến để viết device driver và các phần mềm khác mà dựa vào thao tác trực tiếp của phần cứng dưới ràng buộc về realtime.
C++ được sử dụng rộng rãi để đào tạo, nghiên cứu.
Bất cứ hai đã sử dụng Apple Macintosh hoặc một PC chạy trên Windows đã là gián tiếp sử dụng C++, bởi vì User Interface của các hệ thống này được viết bằng C++.