As a historical note, C is called C because it was written to add data types to B, which, in turn, was written to abstract programming in A from (most) machine dependencies. (The A language was/is assembly.) Both B (and BCPL) were, I believe, just a set of assembly language macros, and, if I recall correctly, the first C compiler was also written as a set of PDP-8 assembly language macros.