Giới thiệu
Có rất nhiều cuốn sách C++ trên thị trường dành cho người mới bắt đầu và 90% trong số đó đều không tốt. Tuy nhiên, việc tìm và tư vấn cuốn sách C++ tốt như thế nào gần như là một vấn đề khoa học.
Vấn đề tiếp theo của danh sách sách C++ là đa dạng về các lĩnh vực C++ áp dụng. Mỗi lĩnh vực có cách tiếp cận khác nhau và thường yêu cầu kiến thức cụ thể. Ví dụ, lập trình hệ thống, phát triển trò chơi, không gian người dùng và kernel-space. Một số sách sử dụng C++ như ngôn ngữ lựa chọn để giải quyết vấn đề cấp cao, chẳng hạn như giải thuật và thiết kế phần mềm bằng C++.
Và cuối cùng, danh sách C++ toàn diện được mong đợi phải cập nhật ít nhất với Tiêu chuẩn ngôn ngữ cuối cùng, và chỉ mới với các cuốn sách mới hấp dẫn - danh sách này không tệ, mặc dù một số sự lựa chọn là có thể đáng ngờ, nhưng nó đã lỗi thời, không bao gồm bất kỳ cuốn sách nào về C++20 một năm sau khi Tiêu chuẩn mới được phát hành. Cách hiệu quả nhất để đạt được tình trạng này là nỗ lực liên tục của cộng đồng, đó là lý do tại sao tôi chọn Github làm phương tiện của danh sách sách C++ của mình.
Sự tranh cãi về Amazon như một nguồn tham khảo chính
Tôi rất buồn khi phải sử dụng các tài liệu tham khảo gần như độc quyền của Amazon, nhưng không may là tôi không tìm thấy bất kỳ nguồn thay thế nào có tính đồng nhất, toàn diện và đáng tin cậy. Khi cung cấp các liên kết này, tôi không khuyến khích sử dụng dịch vụ của Amazon, tôi không đề xuất sử dụng nó cho các giao dịch mua hàng và tôi không chèn bất kỳ liên kết giới thiệu nào. Có lẽ trong tương lai, tôi sẽ tạo một danh mục cuốn sách C++, cung cấp thông tin đầy đủ về các cuốn sách được liệt kê, chẳng hạn như tên tác giả và thông tin ngắn về cuốn sách, năm xuất bản, chú thích, và như vậy.
Đóng góp
Tôi chào đón bất kỳ đóng góp hợp lý nào nhằm tạo ra một danh mục sách C++ toàn diện và cập nhật, dành cho tất cả các loại lập trình viên C++, với mọi nền tảng chuyên nghiệp và kinh nghiệm. Khi sử dụng hoặc sao chép nội dung, áp dụng Giấy phép Creative Commons Attribution-NonCommercial 4.0 Quốc tế.
Bày tỏ lòng biết ơn
Tôi đã tạo danh mục này và tiếp tục duy trì nó trong thời gian rảnh rỗi của mình. Nếu bạn muốn cảm ơn tôi vì những nỗ lực của tôi, bạn luôn có thể mua cho tôi một ly cà phê.
Tham khảo và Tiêu chuẩn ISO
Việc phát hành Tiêu chuẩn C++ khá đắt đỏ. Tuy nhiên, mỗi Tiêu chuẩn C++ có nhiều bản nháp trước khi được phát hành, và thông thường, bản nháp cuối cùng gần như giống với tài liệu được phát hành. Các liên kết sau đến với Tiêu chuẩn đề cập đến các phiên bản nháp cuối cùng trước khi phát hành.
- C++14
- C++17
- C++20
- cppreference.com (và phiên bản ngoại tuyến)
- C++ Core Guidelines
- ISO C++ FAQ
Từ Người mới bắt đầu đến Lập trình
Không có gì đặc biệt để thêm - sách dành cho người mới bắt đầu C++ và có thể là lập trình nói chung.
- C++ Primer 5th Edition (Stanley B. Lippman, 2012)
- Programming: Principles and Practice Using C++ 2nd Edition (Bjarne Stroustrup, 2014)
- Beginning C++ Through Game Programming 4th Edition (Michael Dawson, 2014)
- Beginning C++ Game Programming (John Horton, 2019)
- Starting Out with C++ from Control Structures to Objects (Tony Gaddis, 2017)
- C++ How to Program 10th Edition (Paul Deitel, Harvey Deitel, 2016)
Từ Người mới bắt đầu đến C++
Những cuốn sách này dành cho các nhà phát triển phần mềm có kinh nghiệm với các ngôn ngữ khác và muốn làm quen với C++.
- A Tour of C++ 3rd Edition (Bjarne Stroustrup, 2022)
- Beginning C++23 (Ivor Horton, Peter Van Weert, 2023)
- C and C++ Under the Hood (Anthony J. Dos Reis, 2019)
- Discovering Modern C++, 2nd Edition (Peter Gottschling, 2021)
Sách tổng quát về C++
Những cuốn sách này có thể được coi là danh sách "phải đọc" đối với bất kỳ lập trình viên C++ nào. Một số trong số chúng hơi lỗi thời, vì chúng bao gồm các phiên bản trước đây của Tiêu chuẩn C++, trong trường hợp này, chỉ bỏ qua nội dung lỗi thời hoặc tốt nhất, triển khai lại nó bằng các tính năng mới của ngôn ngữ.
- Professional C++ 5th Edition (Marc Gregoire, 2021)
- C++ Common Knowledge : Essential Intermediate Programming (Stephen C. Dewhurst, 2005)
- C++ Cookbook : Solutions and Examples for C++ Programmers (D. Ryan Stephens, 2005)
- Effective C++ : 55 Specific Ways to Improve Your Programs and Designs 3rd Edition (Scott Meyers, 2005)
- Effective STL : 50 Specific Ways to Improve Your Use of the Standard Template Library (Scott Meyers, 2001)
- Exceptional C++ : 47 Engineering Puzzles, Programming Problems, and Solutions (Herb Sutter, 1999)
- More Exceptional C++ : 40 New Engineering Puzzles, Programming Problems, and Solutions (Herb Sutter, 2001)
- Exceptional C++ Style : 40 New Engineering Puzzles, Programming Problems, and Solutions (Herb Sutter, 2004)
- C++ Coding Standards : 101 Rules, Guidelines, and Best Practices (Herb Sutter, Andrei Alexandrescu, 2004)
- C++ Programming Language 4th Edition (Bjarne Stroustrup, 2013)
- C++ Standard Library : A Tutorial and Reference 2nd Edition (Nicolai M. Josuttis, 2012)
- Standard C++ Iostreams and Locales : Advanced Programmer's Guide and Reference (Angelika Langer, 2000)
Sách nâng cao về C++
Nếu bạn có hơn 5 năm kinh nghiệm, bạn nên thêm những cuốn sách này vào thư viện của mình. Một số cuốn sách có thể chứa các tính năng và phương pháp đã lỗi thời, nhưng tổng thể, chúng vẫn cung cấp kiến thức cực kỳ quý giá.
- C++ Move Semantics - The Complete Guide (Nicolai M. Josuttis, 2020)
- Functional Programming in C++ : How to improve your C++ programs using functional techniques (Ivan Cukic, 2018)
- C++ High Performance : Master the art of optimizing the functioning of your C++ code 2nd Edition (Björn Andrist, 2020)
- Memory Management Algorithms And Implementation In C/C++ (Bill Blunden, 2002)
- Optimizing software in C++ : An optimization guide for Windows, Linux and Mac platforms (pdf) (Agner Fog, 2004)
- Optimizing subroutines in assembly language : An optimization guide for x86 platforms (pdf) (Agner Fog, 2004)
- Calling conventions for different C++ compilers and operating systems (pdf) (Agner Fog, 2004)
- What Every Programmer Should Know About Memory (pdf) (Ulrich Drepper, 2007)
- Learning Boost C++ Libraries (Arindam Mukherjee, 2015)
- Boost C++ Application Development Cookbook (Antony Polukhin, 2013)
- The Art of Writing Efficient Programs (Fedor G. Pikus, 2021)
- C++ Best Practices (Jason Turner, 2022)
- Beautiful C++ : 30 Core Guidelines for Writing Clean, Safe, and Fast Code (J. Davidson, Kate Gregory, 2021)
C++ Templates và Metaprogramming
Những cuốn sách "thần kỳ" về mẫu C++, phần lớn cập nhật với ít nhất Tiêu chuẩn C++11.
- C++ Templates : The Complete Guide 2nd Edition (David Vandevoorde, Nicolai Josuttis, 2017)
- Advanced C++ Metaprogramming (Davide Di Gennaro, 2011)
- Practical C++ Metaprogramming (Edouard Alligand, Joel Falcou, 2016)
Lập trình đa luồng và phân tán trong C++
Có "kiểu tư duy đa luồng" là cần thiết nếu bạn làm việc với kiến trúc hiện đại. Hệ thống trung bình có thể cung cấp 4-12 nhân trên máy tính để bàn và 128-256 trên máy chủ, và một lập trình viên C++ có kinh nghiệm hoàn toàn nên biết cách tận dụng các tài nguyên này. Một số cuốn sách đã được cập nhật với Tiêu chuẩn C++17, một số chỉ là đọc cơ bản về chủ đề.
- C++ Concurrency in Action, Second Edition (Anthony Williams, 2019)
- C++ Reactive Programming (Praseed Pai, Peter Abraham, 2018)
- Parallel and Distributed Programming Using C++ (Cameron Hughes, 2003)
- The Art of Multiprocessor Programming 2nd Edition (Maurice Herlihy, 2020)
- C++ Multithreading Cookbook (Miloš Ljumović, 2014)
- Concurrency with Modern C++ (Rainer Grimm, 2021)
Tối ưu hóa hiệu suất cao cấp cấu trúc thấp
C++ là một ngôn ngữ hiệu suất cao mặc định, nhưng có nhiều trường hợp sử dụng khi "hiệu suất cao mặc định" không đủ. Thông thường, những chủ đề như lập trình song song được coi trong văn học về lập trình song song, nhưng nó bao gồm một tập hợp quan trọng nhỏ tập trung vào các kỹ thuật hiệu suất thấp lưu trữ trên phần cứng (SIMD, bộ nhớ cache CPU, sự phân chia quy trình), chứ không phải là triển khai phần mềm của các thuật toán đa luồng.
- Computer Systems : A Programmer's Perspective (Randal Bryant, David O'Hallaron, 2015)
- Parallel Programming : Concepts and Practice (Bertil Schmidt, Jorge Gonzalez-Dominguez, Christian Hundt, 2017)
- Is Parallel Programming Hard, And, If So, What Can You Do About It? (Paul McKinley, 2021)
Giải thuật trong C và C++
Giải thuật là một chủ đề cơ bản, không phụ thuộc vào ngôn ngữ, và các cuốn sách này trưởng thành như một loại rượu ngon - đó là lý do tại sao không cần thiết phải tuân theo Tiêu chuẩn ngôn ngữ mới nhất ở đây.
- A Complete Guide to Standard C++ Algorithms (Šimon Tóth, cập nhật mới nhất vào năm 2023)
- Implementing Useful Algorithms in C++ (Dmytro Kedyk, 2020)
- Algorithms in C++ 3rd Edition (Robert Sedgewick, 2001)
- Data Structures and Algorithms in C++ 2nd Edition (Michael T. Goodrich, 2011)
- Data Structures and Algorithm Analysis in C++ 4th Edition (Mark Weiss, 2013)
- Hacker's Delight (Henry Warren, 2012)
- Elements of Programming Interviews (Adnan Aziz, 2012)
Bài viết về các tính năng mới: C++11/14
Không có gì đặc biệt để thêm, những cuốn sách này bao gồm những đóng góp đầu tiên lớn vào Tiêu chuẩn C++ bằng phiên bản C++11/14.
- C++11 for Programmers 2nd Edition (Paul Deitel, Harvey Deitel, 2013)
- Effective Modern C++ : 42 Specific Ways to Improve Your Use of C++11 and C++14 (Scott Meyers, 2014)
Bài viết về các tính năng mới: C++17
Cuộc cập nhật lớn tiếp theo, C++17, giới thiệu nhiều tính năng quan trọng và thay đổi các phương pháp và tiếp cận cũ.
- C++17 STL Cookbook (Jacek Galowicz, 2017)
- C++17 in Detail (Bartłomiej Filipek, 2019)
- C++17 The Complete Guide (Nicolai M. Josuttis, 2020)
- The Modern C++ Challenge (Marius Bancila, 2018)
- Mastering the C++17 STL (Arthur O'Dwyer, 2017)
Bài viết về các tính năng mới: C++20
Nhiều tính năng C++20 có thể coi là cách mạng, thay đổi C++ cũ tốt đến mức không thể nhận ra.
- C++ 20 (Rainer Grimm, 2021)
- C++ Lambda Story : Everything you need to know about Lambda Expressions in Modern C++ (Bartlomiej Filipek, 2021)
- Modern C++ Programming Cookbook 2nd Edition (Marius Bancila, 2020)
- Exploring C++20: The Programmer's Introduction to C++ (Ray Lischner, 2020)
- The C++ Standard Library (Rainer Grimm, 2021)
- Programming with C++20 (Andreas Fertig, 2021)
- C++20 - The Complete Guide (Nicolai M. Josuttis)
- C++ Concepts (Sandor Dargo, 2022)
Thiết kế phần mềm và Mô hình thiết kế trong C++
Thiết kế phần mềm và kiến trúc phần mềm trong C++ đã đi qua một quá trình dài từ cuốn sách GoF được phát hành vào năm 1994. Kể từ đó, một số mẫu thiết kế trở thành các tính năng của ngôn ngữ, và một số đã thay đổi vượt ra khỏi sự nhận ra - đó là lý do tại sao rất quan trọng để xem xét các tính năng của ngôn ngữ mới khi triển khai một giải pháp thiết kế phần mềm cụ thể.
- Hands-On Design Patterns with C++ 2nd Edition (Fedor G. Pikus, 2023)
- Design Patterns in Modern C++ (Dmitri Nesteruk, 2018)
- Software Architecture with C++ (Adrian Ostrowski , Piotr Gaczkowski, 2021)
- Large-Scale C++ Volume I: Process and Architecture (John Debbie Lafferty, 2019)
- Large-Scale C++ Volume II: Design and Implementation (John Debbie Lafferty, 2021)
- API Design for C++ (Martin Reddy, 2011)
Lập trình giao diện người dùng
Cuốn sách về các framework giao diện người dùng C++ và lập trình dành cho máy tính để bàn nói chung. Một số cuốn sách có khía cạnh đa nền tảng, tận dụng tính không phụ thuộc vào hệ thống của C++, một số chỉ hướng dẫn cho Windows cụ thể.
- Qt5 C++ GUI Programming Cookbook (Lee Zhi Eng, 2019)
- Mastering Qt 5 (Guillaume Lazar, 2018)
- Advanced Qt Programming (Mark Summerfield, 2016)
- Programming Windows 10 Via UWP (Roger Deutsch, 2017)
Thực hành lập trình an toàn
Nhiều nhà phát triển phần mềm đã nghe qua về các lỗ hổng phần mềm không an toàn nhiều hơn một lần, nhưng vẫn rất ít người quan tâm, xem an ninh IT là một ngành chuyên biệt không thuộc phạm vi của họ. Tuy nhiên, họ đang nhầm lẫn, hầu hết các cuộc tấn công thông thường, chẳng hạn như giả mạo, tràn bộ đệm và từ chối dịch vụ xảy ra do ứng dụng viết và kiểm tra kém chất lượng. Trong khi đó, các phương pháp viết mã an toàn và cải thiện an ninh ứng dụng nói chung đã được biết đến và bạn nên áp dụng nó một lần và mãi mãi, nếu bạn kế hoạch viết các ứng dụng quan trọng cho nhiệm vụ.
- Writing Secure Code (David LeBlanc, 2002)
- Embracing Modern C++ Safely (John Lakos, Vittorio Romeo, Rostislav Khlebnikov, Alisdair Meredith, 2021)
- Secure Coding in C and C++ (Robert C. Seacord, 2013)
- Secure Programming Cookbook for C and C++ (John Viega, 2003)
Lập trình Hệ thống Windows
Lập trình "dưới nắp" của Windows. Một số cuốn sách có vẻ cũ, nhưng thực tế, thông tin được cung cấp về API Windows không lỗi thời. Các tính năng mới được đặt cẩn thận trên nền tảng các tính năng cũ, quan trọng cho việc cung cấp khả năng tương thích ngược. Windows API cung cấp cả giao diện C (OpenGL) và C++ (Direct3D).
- Windows via C/C++ 5th Edition (Jeffrey M. Richter, 2007)
- Windows Via C/C++ Reprint Edition (Pavel Yosifovich, Jeffrey M. Richter, 2019)
- C++ Windows Programming (Stefan Björnander, 2016)
- Windows 10 System Programming, Part 1 (Pavel Yosifovich, 2020)
- Windows 10 System Programming, Part 2 (Pavel Yosifovich, 2021)
- Programming Windows 6th Edition (Charles Petzold, 2013)
- Windows System Programming 4th Edition (Johnson M. Hart, 2010)
- Programming Windows Security (Keith Brown, 2010)
- Windows 64-bit Assembly Language (Robert Dunne, 2018)
- Inside Windows Debugging (Tarik Soulami, 2012)
- Getting Started with WinDbg (Trang tài liệu MS)
- Programming Server-Side Applications for Microsoft Windows (Jeffrey Richter, 2000)
Lập trình kernel Windows
Lập trình Windows ở mức kernel. Các phương pháp và công nghệ mới được cung cấp khi khả năng có thể, nhưng khá khó để tìm một cuốn sách hay về các công nghệ không gian kernel mới nhất và Developer Kit vì chúng gần như không tồn tại.
- Windows Internals, Part 1: System architecture, processes, threads, memory management (Pavel Yosifovich, 2017)
- Windows Internals, Part 2 (Andrea Allievi, Mark Russinovich, 2021)
- Developing Drivers with the Windows Driver Foundation (Penny Orwick, 2007)
- Windows Kernel Programming (Pavel Yosifovich, 2021)
Lập trình hệ thống Linux
Lập trình hệ thống không gian người dùng cho Linux và các hệ thống POSIX nói chung. Một số cuốn sách là sách mới, một số là bản mới của các cuốn sách kinh điển về hệ thống Unix giống như Linux. Gần như tất cả các API giống POSIX đều có giao diện C (Unix) hoặc C++ (Linux).
- Linux System Programming Techniques (Jack-Benny Persson, 2021)
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook (Michael Kerrisk, 2010)
- Advanced Programming in the UNIX Environment 3rd Edition (W.Stevens, Stephen Rago, 2013)
- Beginning Linux Programming 4th Edition (Neil Matthew, 2007)
- Linux System Programming: Talking Directly to the Kernel (Robert Love, 2013)
- The Art of UNIX Programming (Eric Raymond, 2003)
- Hands-On System Programming with C++ (Rian Quinn, 2018)
- Hands-On System Programming with Linux (Kaiwan N Billimoria, 2018)
- Advanced Linux Programming (CodeSourcery LLC, 2001)
Lập trình kernel Linux
Danh sách đọc chính cho lập trình kernel Linux. Sự lựa chọn rộng hơn nhiều so với các cuốn sách tương tự trên Windows.
- Linux Kernel Development (Jack-Benny Persson, 2021)
- Linux Kernel Networking: Implementation and Theory (Rami Rosen, 2013)
- Linux Kernel Programming (Kaiwan N Billimoria, 2021)
- Linux Kernel Programming Part 2 - Char Device Drivers and Kernel Synchronization (Kaiwan N Billimoria, 2021)
- Linux Kernel Debugging (Kaiwan N Billimoria, 2022)
- Mastering Linux Device Driver Development (John Madieu, 2021)
- Linux Device Drivers Development 2nd Edition (John Madieu, 2022)
- Linux Device Driver Development Cookbook (Rodolfo Giometti, 2019)
Lập trình nhúng C++
Lập trình nhúng C++, cấp kernel với một số lưu trữ hạn chế nhất định.
- Mastering Embedded Linux Programming 3rd Edition (Chris Simmonds, Frank Vasquez, 2021)
- Embedded Linux Development Using Yocto Project Cookbook 2nd Edition (Alex Gonzalez, 2018)
- Embedded Linux Systems with the Yocto Project (Rudolf Streif, 2016)
- Hands-On Embedded Programming with C++17 (Maya Posch, 2019)
- Practical Robotics in C++ (Lloyd Brombach, 2021)
- Embedded Systems Architecture (Daniele Lacamera, 2018)
- Real-Time C++ : Efficient Object-Oriented and Template Microcontroller Programming (Christopher Kormanyos, 2021)
Lập trình Mạng
Lập trình mạng C/C++ là một lĩnh vực kiến thức cực kỳ quan trọng, do hiệu suất và việc thực hiện các giải pháp khách hàng-máy chủ quan trọng. Chủ đề có một sự nghiêng nhẹ về Linux, nhưng không có nhiều tính năng cụ thể của hệ thống, và có thể xem như hoàn toàn đồng nghĩa với các nền tảng khác.
- Boost.Asio C++ Network Programming Cookbook (Dmytro Radchuk, 2016)
- Boost.Asio C++ Network Programming 2nd Edition (Wisnu Anggoro , John Torjo, 2015)
- Hands-On Network Programming with C (Lewis Van Winkle, 2019)
- Understanding Linux Network Internals (Christian Benvenuti, 2006)
Đồ họa máy tính trong C++
Những cuốn sách này bao gồm các API đa nền tảng để vẽ đồ họa 2D và 3D. Tất cả các API hệ thống đồ họa, cả hiện đại và cổ điển, đều cung cấp giao diện C (OpenGL) hoặc C ++ (Direct3D). Lý do là một lần nữa, hiệu năng ngoạn mục của C/C++ và khả năng nén tối đa của phần cứng đồ họa.
- OpenGL 4 Shading Language Cookbook (David Wolff, 2020)
- Computer Graphics Programming in OpenGL with C++ (V. Scott Gordon, 2018)
- Learn OpenGL (Joey de Vries, 2020)
- Direct3D Rendering Cookbook (Justin Stenning, 2014)
- Introduction to 3D Game Programming with DirectX 12 (Frank Luna, 2016)
Phát triển trò chơi trong C++
Phát triển trò chơi có thể coi là dẫn xuất từ Đồ họa Máy tính C++, tuy nhiên, phát triển trò chơi không chỉ đơn thuần là đồ họa. Những cuốn sách đã chọn bao gồm các khía cạnh khác nhau của Lập trình Trò chơi C++, từ hướng dẫn về cách tiếp cận ngành công nghiệp đến các Engine Trò chơi C++ phổ biến. Mặc dù các ngôn ngữ khác như C# hoặc Python hiện nay chia sẻ thị trường với các framework C++, tất cả các tựa game AAA vẫn được phát triển bằng C++.
- C++ Game Development By Example (Joey de Vries, 2020)
- Foundations of Game Engine Development (2 cuốn) (Eric Lengyel, 2020)
- Game Programming Patterns (Robert Nystrom, 2014)
- Hands-On C++ Game Animation Programming (Gabor Szauer, 2020)
- Game Programming in C++ : Creating 3D Games (Sanjay Madhav, 2018)
- Getting Started with C++ Audio Programming for Game Development (David Gouveia, 2013)
- Unreal Engine 4 Game Development Quick Start Guide (Rachel Cordone, 2019)
- Unreal Engine 4 Virtual Reality Projects (Kevin Mack, 2019)
- Unreal Engine 4 Scripting with C++ Cookbook (William Sherif , Stephen Whittle, 2016)
- Unreal Engine C++ the Ultimate Developer's Handbook (Stephen Seth Ulibarri, 2020)
Ứng dụng tài chính của C++
C++ là lựa chọn phổ biến cho các ứng dụng tài chính vì cùng lý do với các ngành công nghiệp khác, yêu cầu thực thi nhanh, quản lý bộ nhớ tinh vi và truy cập gần với phần cứng máy tính. Trong nhiều thập kỷ, nó là lựa chọn duy nhất cho giá cả, quản lý rủi ro các công cụ tài chính và giao dịch thuật toán.
- Financial Instrument Pricing Using C++ (Daniel J. Duffy, 2004)
- Quantitative Finance : An Object-Oriented Approach in C++ (Erik Schlogl, 2013)
- Building Financial Risk Management Applications with C++ (Robert Brooks, 2013)
- C++ for Financial Mathematics (John Armstrong, 2017)
- Hedge Fund Modelling and Analysis : An Object Oriented Approach Using C++ (David Hampton, Paul Darbyshire, 2016)
Thiết kế phần cứng trong C++
Có thể ngạc nhiên khi C++ đã đến với ứng dụng chuyên môn hẹp này, bị chi phối bởi các ngôn ngữ miêu tả phần cứng đặc biệt (HDLs) như Verilog và VHDL. Tuy nhiên, việc sử dụng C++ cho mục đích thiết kế SoC mang lại nhiều lợi ích lớn - nó cung cấp tích hợp mượt mà giữa phần cứng và phần mềm của hệ thống, và trừu tượng tốt hơn so với HDL procedural.
- SystemC : From the Ground Up (David C. Black, Jack Donovan, 2009)
- Simulation, Design Abstraction, and SystemC (Ed Harcourt, 2007)
- An Introduction to System Level Modeling in SystemC 2.0 (Stuart Swan, 2001)
Lập trình C hiện đại
Đồng minh của chúng ta từ thế giới không hướng đối tượng. Sự tập trung của các cuốn sách đã chú trọng vào các tính năng mới của C, đặc biệt là C11 và C17.
- Effective C : An Introduction to Professional C Programming (Robert C. Seacord, 2020)
- Modern C (Jens Gustedt, 2019)
- Extreme C : Taking you to the limit in Concurrency, OOP, and the most advanced capabilities of C (Kamran Amini, 2019)
- C Programming : A Modern Approach (K. N. King, 2008)
- Object-Oriented Programming With ANSI C (Axel Schreiner, 2011)
Các cuốn sách cũ và cổ điển về C++
Không có ý kiến gì ở đây. Một số cuốn sách chỉ là các tác phẩm quý giá trong lịch sử ngôn ngữ C++, một số vẫn giữ lại các ý tưởng và giải pháp không bao giờ lỗi thời.
- Effective C++ : 50 Specific Ways to Improve Your Programs and Designs Subsequent Edition (Scott Meyers, 1997)
- More Effective C++ : 35 New Ways to Improve Your Programs and Designs (Scott Meyers, 1996)
- Advanced C++ Programming Styles and Idioms (James O. Coplien, 1991)
- Design and Evolution of C++ (Bjarne Stroustrup, 1994)
- Design Patterns : Elements of Reusable Object-Oriented Software (GoF, 1994)
- Large-Scale C++ Software Design (John Lakos, 1996)
- C++ for Real Programmers Revised Edition (Jeff Alger, 1998)
- Thinking in C++, Vol. 1 : Introduction to Standard C++ (Bruce Eckel, 2000)
- Thinking in C++, Volume 2 : Practical Programming (Bruce Eckel, 2003)
- Modern C++ Design : Generic Programming and Design Patterns Applied (Andrei Alexandrescu, 2001)
Bài viết này được cấp phép theo Giấy phép Creative Commons Attribution-NonCommercial 4.0 Quốc tế.