> The language shows you the machine, a machine which is not forgiving to mistakes.
Assembly does that, C not really, it is a myth that it does.
> The language shows you the machine, a machine which is not forgiving to mistakes.
Assembly does that, C not really, it is a myth that it does.
True, it doesn't give you the bare machine. What it gives you is the thinnest of machine abstraction with the possibility of linking to your own assembly if you have the demand for it.
Yet another myth, plenty of languages since JOVIAL in 1958 offer similar capabilities.
I am curious, what was it I said that you consider to be a myth? If I have some misunderstanding I would like to know. I looked at JOVIAL on wikipedia quickly but I can't see exactly how it would be thinner than C or if it's compiler would output something vastly different to a C compiler. Or did you mean it's as thin as C but it came out earlier?
Both, the properties that UNIX crowd assigns to C aren't unique.
Most think that way because they never learnt anything other than C and C++.
I see, you thought I meant that C was the only language with this property. No there are plenty of others, I was fully aware of that. I on the other hand thought you meant that JOVIAL in some way was even thinner or more tuned to underlying architecture in some way that made it thinner than C.
Ok, if you insist on ultra precise description - "C is is the lowest level language among widely used".
Not even that, because C compilers nowadays are written in C++.
It is unrelated to the point.
I'm being pedantic, but on modern hardware, the ISA is an abstraction over microarchitecture and microcode. It's no longer a 1-to-1 representation of hardware execution. But, as programmers, it's as low as we can go, so the distinction is academic.
Still one layer below C, and with plenty of features not available on C source code.
Compiler intrinsics do give you C/C++ api access to relevant ISA subsets as platform-specific extensions.