Back to Basics: The Abstract Machine
summary
Explains the concrete claim that C++ programs target a defined C++ abstract machine and that conforming implementations must match its observable behavior, not any specific CPU. Covers the as-if rule, the three behavior classes undefined/unspecified/implementation-defined, the flat byte-memory model, object lifetimes and storage durations, pointer rules including one-past-the-end, threads and interaction points, and how compilers/linkers (Clang/LLVM mentioned) translate abstract operations into machine code. Watch if understanding those concrete rules matters tonight.
AI-written summary · about
chapters (25)
- 0:00Introduction
- 0:47Definitions
- 3:42Why Abstract Machines
- 4:17Computing Platforms
- 5:09Tools to Manage Complexity
- 5:58Performance Critical Software
- 7:49C
- 10:33C Abstract Machine
- 11:44Implementation
- 18:36Interactions
- 22:40Wellformed Program
- 23:16Implementation Defined Behavior
- 29:09Illformed
- 30:27Illformed No Diagnostic Required
- 31:18Abstract Machine Structure
- 32:03Memory
- 34:02Objects
- 39:53Storage Duration
- 41:05Static Storage Duration
- 42:32Static Storage Lifetime
- 43:44Threads
- 44:51Main
- 47:01Value Objects
- 49:59Functions
- 52:39Questions
related talks
56mThe C++ Execution Model
01h 06mBack to Basics: Functions in C++
44mThis is why we can('t) have nice things
01h 03mBack to Basics: The C++ Core Guidelines
01h 01mThe two memory models
01h 05mBack To Basics: Overload Resolution
58mUnderstanding and Mastering C++'s Complexity
39mBack to Basics: The Rule of Five in C++
