int64_t age = now - then; // UNDEFINED BEHAVIOUR if overflow!
uint64_t age = now - then; // DEFINED: wraps at 2⁶⁴
Seriously, fuck C. Since this book focuses on safe, reliable, bugfree programs, why not use Rust? int64_t age = now - then; // UNDEFINED BEHAVIOUR if overflow!
uint64_t age = now - then; // DEFINED: wraps at 2⁶⁴
Seriously, fuck C. Since this book focuses on safe, reliable, bugfree programs, why not use Rust?Anyhoo... seems interesting. I've been trying to convince Claude to produce a verified JavaCard VM implementation, just for the hell of it, and this probably has a bunch of information to help with that.
A microprocessor starts by executing the machine code at the reset vector. This machine code is generated by an assembler or a compiler backend. It has no idea what programming languages are.