C++Now 2025 - David Sankel: "C++ Program Correctness and its Limitations" youtu.be/In2elCXQ10A We talk about "correct" programs all the time, but what does that really mean? This talk dives into the tricky business of defining program correctness, exploring several attempts and their pitfalls along the way. Even with a solid definition, we'll see how formal correctness only goes so far in real-world software development. The talk concludes by looking at the bigger picture: what are we actually trying to achieve with correctness, and are there better ways to get there? --- David Sankel David Sankel is a Principal Scientist, leads Adobe's Software Technology Lab, and is an active member of the C++ Standardization Committee. His experience spans microservice architectures, CAD/CAM, computer graphics, visual programming languages, web applications, computer vision, and cryptography. He is a frequent speaker at C++ conferences and specializes in large-scale software engineering and advanced C++ topics. David’s interests include dependently typed languages, semantic domains, EDSLs, and functional reactive programming. He was the project editor of the C++ Reflection TS, is the Executive Director of the Boost Foundation, and authored several C++ proposals including pattern matching and language variants.
C++Now 2025: David Sankel on Program Correctness and Limitations
More Relevant Posts
-
Delving into advanced C++ unlocks powerful features like smart pointers for safer memory management, template metaprogramming for flexible code, lambda expressions for concise inline functions, and multithreading for parallel computing. Mastering these topics not only improves code efficiency and reliability but also equips you to tackle complex system-level programming challenges. Whether you’re building high-performance applications, real-time systems, or scalable software, understanding advanced C++ concepts is your key to writing modern, robust, and maintainable code. Let’s explore the landscape of modern C++ together and push the boundaries of what this language can achieve!"
To view or add a comment, sign in
-
-
Examining the enduring relevance of C programming in the face of newer languages like Zig. This project explores C's strengths: its established toolchain, broad portability, and continued evolution with the C23 standard. Discover how C's explicit memory management and minimal syntax provide clarity and control, essential for systems programming. Use cases in embedded systems and high-performance computing highlight C's practical advantages. Explore the details here: https://lnkd.in/gmrZsVV8 #Cprogramming #SystemsProgramming #EmbeddedSystems
To view or add a comment, sign in
-
-
The right way to learn C is to understand how it translates to assembly/machine code and what the CPU will do as a result. Presenting - "C Language (Using RISC-V ISA)" This course dives into the practical applications of the C language, emphasizing hands-on learning to solidify key concepts. Delivered in an engaging and unconventional style, the lessons go beyond theory, equipping you with the skills to apply C programming in real-world scenarios. By the end of the course, you’ll feel confident in your mastery of the C language, adept at using it alongside the tools and utilities professional C programmers rely on daily. Check the contents and details here: https:// pyjamabrah.com/c/ --- 𝙵𝚘𝚛 𝚖𝚘𝚛𝚎 𝚒𝚗𝚜𝚒𝚐𝚑𝚝𝚏𝚞𝚕 𝚌𝚘𝚗𝚝𝚎𝚗𝚝, 𝙵𝚘𝚕𝚕𝚘𝚠: - 𝗣𝗶𝘆𝘂𝘀𝗵 𝗜𝘁𝗮𝗻𝗸𝗮𝗿: https://lnkd.in/dYWsEdeC - 𝗪𝗵𝗮𝘁𝘀𝗮𝗽𝗽 𝗖𝗵𝗮𝗻𝗻𝗲𝗹: https://lnkd.in/gKJxmz2X - 𝗡𝗲𝘄𝘀𝗹𝗲𝘁𝘁𝗲𝗿: https://lnkd.in/gBVauWFg - 𝗬𝗼𝘂𝘁𝘂𝗯𝗲: https://lnkd.in/g5gatycc - 𝗧𝗲𝗹𝗲𝗴𝗿𝗮𝗺: https://lnkd.in/gmNATvze - 𝗗𝗶𝘀𝗰𝗼𝗿𝗱: https://lnkd.in/gwzv_z-G #pyjamabrah #embeddedsystems #embeddedbasics
To view or add a comment, sign in
-
-
Book recommendation for my network! "C++ in Embedded Systems: A practical transition from C to modern C++" by Amar Mahmutbegović is an absolute gem. This is the definitive guide I wish I had years ago. It masterfully bridges the gap between traditional C and the power of modern C++ for embedded development. It gives you the confidence to use C++ by focusing on: - Zero-cost abstractions - Safe resource management (RAII) - Type-safe programming - Compile-time computation It's a practical book for writing firmware that is safer, more maintainable, and just as efficient. Highly recommended! Thank you Amar Mahmutbegović Sir. #EmbeddedSystems #Cpp #ModernCpp #Firmware #Cprogramming #BookRecommendation #Tech
To view or add a comment, sign in
-
-
Lessons from 4 weeks of exploring predictable, high-performance C++. Here’s my 4-week recap — summarizing the core ideas, concepts, and design considerations that shaped my understanding of low-latency systems. If you’re exploring modern C++ or systems programming, I hope these notes help you. #cpp #lowlatency #cplusplus #systemsprogramming #performance #concurrency #learninpublic #engineering
To view or add a comment, sign in
-
🚀 Create Two-Dimensional Arrays in Modern C++ Using Alias Templates In modern C++, we prefer using std::array over raw C-style arrays. Creating a one-dimensional array is clean and straightforward: std::array arr { 1, 2, 3, 4, 5 }; // CTAD (C++17) But things get verbose when creating a two-dimensional array: std::array<std::array<int, 4>, 3> arr {{ { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }}; 👉 Notice the double braces. This happens because std::array is essentially a struct containing a single C-style array member, so we need an extra level of braces to initialize it. The syntax is correct — but it's not elegant. It’s verbose, easy to misread, and the template arguments (Col, Row) are reversed from how we naturally think about matrices. 💡 Alias templates to the rescue. We can simplify the syntax using an alias template: template <typename T, std::size_t Row, std::size_t Col> using Array2d = std::array<std::array<T, Col>, Row>; Now creating a 2D array becomes clean and intuitive: Array2d<int, 3, 4> arr {{ { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }}; ✔️ More concise ✔️ Less error-prone ✔️ Easier to read and maintain Alias templates are a powerful part of modern C++, and small improvements like this can significantly clean up code in real projects. 📘 Reference: LearnCpp.com — Multidimensional std::array
To view or add a comment, sign in
-
#C++ #Template_Programming #Embedded_Software_Development In this code snippet i have implmented CAN data frame by using C++ template type available in Standard template library so i am not using macros. C++ templates are very powerful offering compile time checking unlike macros not offering compile time checking and very hard to diagnose but still used today so we can use specific subset of C++ features for embedded software development if classes and objects can create a bloated and hard to analyze code . I will be sharing more information about C++ Standard template library and how C++ can be used in embedded software development effciently. If someone wants to learn more about CAN then have a look here : https://lnkd.in/dZDBDMw8
To view or add a comment, sign in
-
-
Another head-spinning course. I think for Rust devs, C++ is very helpful because Rust devs might need to translate a lot of C++ stuff to Rust in the future. Not just OOP, STL, or the basics ... it’s essential to dive into modern C++ concurrency and the deep system-level techniques used in Drivers and Kernel development. C++ shines with its unmatched control and performance tuning capabilities, while Rust brings safety and elegance to systems programming. Together, they form a powerful combination for anyone serious about mastering low-level programming craftsmanship. Learning both rewires the way you think about performance, memory, and parallelism. https://lnkd.in/gaZ-b_Ew #Rust #Rustc #Cpp #C++ #SystemEngineering #Concurrency #ModernCpp #EmbeddedProgramming #Drivers #LowLevelProgramming #SystemsProgramming #Performance #MemoryManagement #SafeSystems
To view or add a comment, sign in
-
Hello everyone! 🚀 Excited to share my new C++20 library: frtclap! frtclap is a header-only, reflection-inspired CLI parser for C++20, designed to let you define command-line arguments as plain structs - with automatic flag mapping, type-safe parsing and support for subcommands. Key Features: - Header-only -- no build, no linking, no external dependencies - Automatic flag mapping ("input" -> "--input") - Customizable names with frtclap::rename - Subcommands using std::variant and std::visit - Type-safe parsing for strings, integers, vectors and more ⚠️Important: frtclap is still experimental. Many features are yet to be implemented -- like automatic help messages, short flags, nested subcommands. 💡 I’m actively looking for contributors! If you’re interested in modern C++ design, compile-time reflection, and building a clean CLI parser, your help would be hugely appreciated. Check it out on GitHub: https://lnkd.in/dM8GZMmG #Cplusplus #CPP20 #OpenSource #CLITools #HeaderOnly #BoostPFR #Reflection #Programming #ContributorsWanted A snippet of example usage is below:
To view or add a comment, sign in
-
-
Reflection in modern C++ enables code, which maps command line arguments directly to a struct. It turns handling CLI parameters to an easy task . Thanks Fırat Özkan for the library Has anyone else nice examples with C++ reflection?
Hello everyone! 🚀 Excited to share my new C++20 library: frtclap! frtclap is a header-only, reflection-inspired CLI parser for C++20, designed to let you define command-line arguments as plain structs - with automatic flag mapping, type-safe parsing and support for subcommands. Key Features: - Header-only -- no build, no linking, no external dependencies - Automatic flag mapping ("input" -> "--input") - Customizable names with frtclap::rename - Subcommands using std::variant and std::visit - Type-safe parsing for strings, integers, vectors and more ⚠️Important: frtclap is still experimental. Many features are yet to be implemented -- like automatic help messages, short flags, nested subcommands. 💡 I’m actively looking for contributors! If you’re interested in modern C++ design, compile-time reflection, and building a clean CLI parser, your help would be hugely appreciated. Check it out on GitHub: https://lnkd.in/dM8GZMmG #Cplusplus #CPP20 #OpenSource #CLITools #HeaderOnly #BoostPFR #Reflection #Programming #ContributorsWanted A snippet of example usage is below:
To view or add a comment, sign in
-
More from this author
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development