 2006 (UTC)  :I'm kind of with you on that, and everyone else seems to have missed the point ) The problem is a fundemental problem of definition, which this page hasn't addressed yet. The 33 key words define a low level (3G, procedural) language: there aren't even input and output operators. On the other hand, standard C (which includes the standard C libraries), is an ordinary (3G, procedural) language.     ::The 'closeness' to asm or machine code has become a bit of a red herring partly because most people have never examined the machine code generated by Pascal or Fortran compilers, so that's worth clearing up: For most of their lives, Pascal and Fortran compilers generated smaller, faster, tighter code than C compilers, and there was generally a one-to-one correspondance between lines of code and assembler constucts in all three languages. The smaller faster tighter code resulted from better optimisation (tied to the simpler syntax), and better integration of the 'library' functions, not because i++ compiled differently than i=i+1.  ::On the other hand, sprintf is a high level construct, and that's why C, not Pascal or Fortran, eventually replaced asm as the language of choice for writing Windows Device Drivers. The high level constructs in C are parts of the library that can, with care, be re-written or excluded. Note that it took a while though: Windows NT was written in C, but the Windows NT device drivers were written in asm, because in C it was difficult to get the kind of smaller tighter faster code required.  02:39, 6 November