cxzuk wrote:
C does not allow inline (at&t/intel) assembly, It is a compiler extension if you are able to.
True, very much a compiler feature. Still, that doesn't change the fact that C and assembly are two separate languages (each with many, many dialects).
cxzuk wrote:
A high level language is a language with "strong abstraction from the details of the computer". C can not be considered high level; I call it a highlevel assembly language, but the key point is its not a high level language.
C *is* a high-level language, as it abstracts the hardware architecture from the coder. It is perfectly feasible to write a C program, and then compile it for x86, x86-64, and then again as ARM, and a whole array of other architectures without changing your C code much (if at all), whereas any assembly code would need a complete rewrite due to the differing machine codes across architectures. That is how C is high-level -- it can be abstracted from the details of the architecture (machine code).
cxzuk wrote:
C++ is an extension of C (a superset; e.g. Any C program is a valid C++ program), and its original name was "C with classes".
C++ has had many changes but still has the dependency of being a superset of C. Which means you are able to do things which may not be acceptable by the OO definition.
C++ originated as a superset of C, but it has considerably scaled up since then. The "C with classes" paradigm has been left in the dust, probably over a decade ago.
That, and *any* language can be written in improper/unintended ways. That is not wrong language features, that is poor coding.