> When your computer is a PDP-11, otherwise it is a high level systems language like any other.

Describing C as "high-level" seems like deliberate abuse of the term. The virtual machine abstraction doesn't imply any benefits to the developer.

> Describing C as "high-level" seems like deliberate abuse of the term

Honestly it doesn't really matter. High level and low level are relative to each-other (and machine language), and nothing changes based on what label you use.

Best thing to do is shrug and say "ok".

That's a curious remark, although I guess it doesn't look high level from the eyes of someone looking at programming languages today.

C has always been classed as a high level language since its inception. That term's meaning has shifted though. When C was created, it wasn't assembly (middle) or directly writing CPU op codes in binary/hex (low level).

Spend 90 days writing nothing but assembly language and then tell me that you believe C is a low level language.

I don't see much difference. What is C suppose to express that assembly cannot? What is assembly suppose to express that C cannot? Does this conversation matter to begin with?

You did not spend 90 days writing assembly language. I doubt you even spent 1 day.

For one, C has types and type-checking.

Neither does pretending C is a macro Assembler.