“c is portable assembly” hasn't been true since optimising compilers appeared for it. it's an accurate description for those really simple (usually old) c compilers on the other hand… where for (;;) and while (1) are different and local variables aren't free. old c is so cute
The "portable assembly" thing always bugged me. C has functions, data types, and variables that are distinct from registers or memory locations. That's not stuff you find in assemblers.
@suetanvil@hikari I think the point is the ability to have insight into the assembly code behind the high-level features without external tools, and that could be crucial for system programmers.