C Programming History – Was C Considered a Low-Level Language When It Came Out?

chistoryprogramming-languages

Currently C is considered a low level language, but back in the 70's was it considered low level? Was the term even in use then?

Many popular higher level languages didn't exist until the mid 80's and beyond so I'm curious if and how the nature of low level has changed over the years.

Best Answer

To answer the historical aspects of the question:

The design philosophy is explained in The C Programming Language written by Brian Kernighan and C designer Dennis Ritchie, the "K&R" you may have heard of. The preface to the first edition says

C is not a "very high level" language, nor a "big" one...

and the introduction says

C is a relatively "low level" language... C provides no operations to deal directly with composite objects such as character strings, sets, lists, or arrays. There are no operations that manipulate an entire array or string...

The list goes on for a while before the text continues:

Although the absence of some of these features may seem like a grave deficiency,... keeping the language down to modest size has real benefits.

(I only have the second edition from 1988, but the comment below indicates that the quoted text is the same in the 1978 first edition.)

So, yes, the terms "high level" and "low level" were in use back then, but C was designed to fall somewhere on the spectrum in between. It was possible to write code in C that was portable across hardware platforms, and that was the main criteria for whether a language was considered high level at the time. However, C lacked some features that were characteristic of high level languages, and this was a design decision in favor of simplicity.