C is called middle-level language because it is actually fill the gap between a machine level language and high-level languages. User can use c language to do System Programming (for writing operating system) as well as Application Programming (for generate menu driven customer billing system ). That’s why it is called middle level language. C language = middle-level language = Machine-level language + High-lelvel langugae.
C is referred to as middle level language becasue, with C we are able to manipulate bits, bytes and addresses i.e. interact with the hardware directly. We are also able to carry out memory management functions
C is a general purpose, structured programming language. Among the two types of programming languages(Machine-level language and High-lelvel langugae) , C lies in between these two categories. That’s why it is often called a middle level language.
It means that it combines the elements of high level languages with the functionality of assembly language. It provides relatively good programming efficiency (as compared to machine oriented language) and relatively good machine efficiency as compared to high level languages).
As a middle level language, C allows the manipulation of bits, bytes and addresses – the basic elements with which the computer executes the inbuilt and memory management functions.
C code is very portable, that it allows the same C program to be run on machines with different hardware configurations. The flexibility of C allows it to be used for systems programming as well as for application programming.