CHƯƠNG 1: TỔNG QUAN VỀ LẬP TRÌNH C++
1.1 Giới thiệu về ngôn ngữ C++
1.1.1 Nguồn gốc
Ngôn ngữ C++ được Giáo sư Bjarne Stroustrup phát triển từ ngôn ngữ C từ cuối thập niên 1970.
C là ngôn ngữ thực tế khi nói đến kỹ thuật hệ thống nhúng. Chủ yếu là do hiệu suất cao của ngôn ngữ C và dễ sử dụng. Ngôn ngữ C tiêu tốn rất ít tài nguyên bộ nhớ khiến chương trình chạy nhanh. Kết quả là, bạn có thể mong đợi các hệ thống nhúng hoạt động trong thời gian thực mà không cần chi phí hoạt động.
Hơn nữa, vì ngôn ngữ C có tính di động cao, nó không bị ràng buộc với bất kỳ bộ vi xử lý cụ thể hoặc một hệ thống. Vì vậy, bạn có thể biên dịch một chương trình nhúng trên các thiết bị và nền tảng khác nhau với ít hoặc không có thay đổi nào cả.
Đó là lý do tại sao xe hơi tự động, smartwatch, cảm biến IoT và các thiết bị như máy pha cà phê có phần xương sống được viết bằng C hoặc C ++. Trong các hệ thống được kết nối, C cho phép bạn làm việc trực tiếp với tài nguyên bộ nhớ và điều chỉnh mọi phần của code.
C++ là một phiên bản mở rộng của ngôn ngữ C, kết hợp tất cả các tính năng đã có của C.
C++ được coi như là ngôn ngữ bậc trung (middle-level), 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ó thể dùng để lập trình nhúng, lập trình hệ thống cho khả năng thực thi nhanh.
C++ là ngôn ngữ "đa hướng". Nghĩa là nó hướng cấu trúc giống C và có thêm một tính năng cực kỳ quan trọng đó là tính năng hướng đối tượng.
C++ là một trong những ngôn ngữ lập trình phổ biết thuộc top 10 trên thế giới.
Nguồn: StackOverflow Developer Survey, 2019
b. Tại sao nên học ngôn ngữ C++
Học lập trình C / C++ để nắm vững các ngôn ngữ lập trình nâng cao khác nhanh hơn
Operating Systems: C++ là một phần không thể thiếu của rất nhiều hệ điều hành phổ biến hiện nay như Mac OS, Microsoft Window…
Graphics: C++ được dùng để tạo ra các phần mềm đồ họa đình đám như Image Ready, Adobe Premiere, Photoshop, Illustrator, … Xử lý tính toán đồ họa 3D trong Maya 3D…
Games: C++ được dùng để tạo ra rất nhiều game nổi tiếng trên thế giới như World of Warcraft, Diablo series, StarCraft series, Doom 3, Team Fortress 2… Và tất nhiên cũng có rất nhiều engine game sử dụng C++ để phát triển như Unreal Engine, Coscos2dx framework…
Hầu như tất cả các ngôn ngữ lập trình hiện đại và thư viện phổ biến khác đều được xây dựng bởi C / C ++. Dưới đây là một số ví dụ điển hình:
- Java: Lõi của điểm nóng Máy ảo Java được triển khai trong C ++.
- Python: Trình thông dịch Python được triển khai trong C.
- Javascript: Công cụ Javascript phổ biến nhất V8 được triển khai trong C ++.
- Numpy: Một trong những thư viện khoa học phổ biến nhất trong Python và nó được sử dụng rộng rãi trong AI và ML, nhưng module cốt lõi của nó được triển khai trong C.
C++ là ngôn ngữ mạnh và hiệu quả
Bởi vì khả năng của C++ mà nó được sử dụng để xây dựng nên rất nhiều sản phẩm phần mềm đồ sộ như:
Database: Mysql được viết bởi C và C++
Trình duyệt web: Chrome, Firefox, v.v. cũng được xây dựng từ C++
C++ là một ngôn ngữ hiệu quả để xây dựng các hệ thống nhúng, hệ thống điện tử tích hợp phần mềm
Hơn nữa, vì ngôn ngữ C có tính di động cao, nó không bị ràng buộc với bất kỳ bộ vi xử lý cụ thể hoặc một hệ thống. Vì vậy, bạn có thể biên dịch một chương trình nhúng trên các thiết bị và nền tảng khác nhau với ít hoặc không có thay đổi nào cả.
Đó là lý do tại sao xe hơi tự động, smartwatch, cảm biến IoT và các thiết bị như máy pha cà phê có phần xương sống được viết bằng C hoặc C ++. Trong các hệ thống được kết nối, C cho phép bạn làm việc trực tiếp với tài nguyên bộ nhớ và điều chỉnh mọi phần của code.
1.1.2. Quy trình phát triển phần mềm hệ thống nhúng
a. Phần mềm hệ thống nhúng
Phần mềm hệ thông nhúng được định nghĩa là một chương trình được viết, biên dịch trên máy tính và nạp vào một hệ thống khác (gọi tắt là KIT) bao gồm một hoặc nhiều bộ vi xử lý đã được cài sẵn một hệ điều hành hoặc bộ vi điều khiển , bộ nhớ ghi chép được, các cổng giao tiếp với các phần cứng khác.
Hiện nay phần lớn các phần mềm nhúng nằm trong các sản phẩm truyền thông và các sản phẩm điện tử tiêu dùng (consumer electronics), tiếp đến là trong các sản phẩm ô tô, phương tiện vận chuyển, máy móc thiết bị y tế, các thiết bị năng lượng, các thiết bị cảnh báo bảo vệ và các sản phẩm đo và điều khiển. Để có thể tồn tại và phát triển, các sản phẩm công nghiệp và tiêu dùng cần phải thường xuyên đổi mới và ngày càng có nhiều chức năng tiện dụng và thông minh hơn. Các chức năng này phần lớn do các chương trình nhúng tạo nên. Phần mềm nhúng là một lĩnh vực công nghệ then chốt cho sự phát triển kinh tế của nhiều quốc gia trên thế giới như Nhật Bản, Hàn Quốc, Phần Lan và Trung quốc. Tại Mỹ có nhiều chương trình hỗ trợ của Nhà nước để phát triển các hệ thống và phần mềm nhúng. Hàn Quốc có những dự án lớn nhằm phát triển công nghệ phần mềm nhúng như các thiết bị gia dụng nối mạng Internet, hệ thống phần mềm nhúng cho phát triển thành phố thông minh, dự án phát triển ngành công nghiệp phần mềm nhúng, trung tâm hỗ trợ các ngành công nghiệp hậu PC... Thụy Điển coi phát triển các hệ nhúng có tầm quan trọng chiến lược cho sự phát triển của đất nước. Phần Lan có những chính sách quốc gia tích cực cho nghiên cứu phát triển các hệ nhúng đặc biệt là các phần mềm nhúng.
Trong quá trình phát triển phần mềm nhúng, ngoài việc tuân thủ một số thao tác nhất định trong quy trình phát triển phần mềm nói chung thì do những đặc điểm riêng mà thao tác lập trình của phần mềm nhúng được gọi là Build Process được biểu diễn như sau:
b. Trình biên dịch (compiler)
Máy tính chỉ có thể hiểu một ngôn ngữ duy nhất là tập hợp của các chỉ lệnh được tạo thành từ 2 chữ số 0 và 1. Ngôn ngữ này được gọi là NGÔN NGỮ MÁY - MACHINE LANGUAGE. Một chỉ lệnh của máy tính thường được biểu diễn như sau:
00000 | 10011110 |
Nhiệm vụ của trình biên dịch là chuyển đổi chương trình được viết bằng ngôn ngữ thân thiện với con người (human-readable language) ví dụ như C, C++,… thành tập mã lệnh tương đương có thể đọc và hiểu bởi bộ vi xử lý đích.
Đây là ngôn ngữ lập trình C++ do lập trình viên thực hiện:
int a, b, sum;
cin >> a;
cin >> b;
sum = a + b;
cout << sum << endl;
Đây là mã máy sau khi được compiler chuyển đổi từ các mã lệnh do người lập trình viết:
00000 10011110 00001 11110100 00010 10011110 00011 11010100 00100 10111111 00101 00000000
c. Trình nạp (loader)
Đối với các chương trình dùng để thực thi trên máy tính Windows thì mã nguồn sẽ được biên dịch thành dạng file .exe.
Để nạp chương trình xuống các thiết bị phần cứng chuyên dụng thì mã nguồn phải được biên dịch thành dạng file .hex hoặc .bin.
1.1.3. Cài đặt môi trường phát triển (IDE) Visual Studio 2019
Ở đây chúng ta sẽ thực hành tải và cài đặt IDE Visual Studio 2019. Bộ IDE này có 3 phiên bản chính được tích hợp những tính năng khác nhau như sau:
Về cơ bản như chúng ta thấy ở hình trên thì với người dùng thông thường có thể tải và cài đặt phiên bản Community là đủ để học tập. Tiến trình cài đặt như sau:
a. Kiểm tra cấu hình máy tính
Trước khi cài đặt Visual Studio 2019 để đảm bảo máy tính có đủ khả năng hoạt động với IDE này.
b. Tải về Visual Studio theo link sau: download
c. Các bước cài đặt
Từ thư mục download hoặc nơi chứa file tải về, chạy file vs_community.exe để bắt đầu tiến trình cài đặt.
Sau khi bấm install, quá trình cài đặt sẽ diễn ra trong vài phút tùy vào độ mạnh yếu của máy tính. Như vậy bạn đã hoàn thành việc cài đặt Visual Studio 2019 để bắt đầu học lập trình C++. Mời các bạn tiếp tục theo dõi ở những bài sau.
Không có nhận xét nào:
Đăng nhận xét