If you’ve been flirting with C++, and are past the customary “Hello, world!” program, have been programming for a few months, but want to commit to a serious relationship, then this talk is for you.
Bob Steagall masterfully walks you through the C++ abstract machine, and take you to the dance between the programmer, the compiler, the abstract machine, the machine code and the physical (or in today’s world, virtual) machine. You can also check Bob’s Blog.
This post from last year caught my eye:
Programming language popularity: C++ bounces back at Python’s expense
Now, C++ and Python are different tools for different problems, and I see them as complementary–just check TensorFlow, which harmonizes both languages beautifully. The key point is that C++ usage is growing. If you want to be part of this growth, check this talk.
Bob starts with the language goals, and focuses on performance-critical software, and no room for a lower level language, and no, this is not a conspiracy to “dislodge” C. How does C++ meet such goals? Well, dig in and learn about the abstract machine
You will learn about the differences between programmer’s concerns vs. the compiler’s concerns, expressions, definitions of what an abstract machine for C++ is, its parametrization, what a well-formed program is, and so on. Bob covers nondeterminism, implementation-defined behavior, unspecified behavior, undefined behavior (the dreaded UB, and nope, it’s not Ultra Biolet, where Biolet is a not a biological product, and…but I digress).
So, if you’re serious about your relationship with C++, or simply want to review the basics, I invite you to check this talk. Since none of us like reading standardese (well, some do), you can find additional documentation about the C++ language in bite-sized chunks of text with examples on cppreference, or in Spanish on es.cppreference. A parting quote from Bob’s talk:
When we write C++ code, we are writing to the C++ abstract machine
Thus Spoke Bob Steagall.