Why is C known as middle level language?
C is a middle level programming language developed by Dennis Ritchie during the early 1970s while working at AT&T Bell Labs in USA. The objective of its development was in the context of the re-design of the UNIX operating system to enable it to be used on multiple computers.
Earlier the language B was now used for improving the UNIX system. Being a high level language, B allowed much faster production of code than in assembly language. Still, B suffered from drawbacks as it did not understand data-types and did not provide the use of “structures”.
These drawbacks became the driving force for Ritchie for development of a new programming language called C. He kept most of language B’s syntax and added data-types and many other required changes. Eventually C was developed during 1971-73, containing both high-level functionality and the detailed features required to program an operating system. Hence, many of the UNIX components including UNIX kernel itself were eventually rewritten in C.
Benefits of C language
As a middle level language, C combines the features of both high level and low level languages. It can be used for low-level programming, such as scripting for drivers and kernels and it also supports functions of high level programming languages, such as scripting for software applications etc.
C is a structured programming language which allows a complex program to be broken into simpler programs called functions. It also allows free movement of data across these functions.
Various features of C including direct access to machine level hardware APIs, presence of C compilers, deterministic resource use and dynamic memory allocation make C language an optimum choice for scripting applications and drivers of embedded systems.
C language is case-sensitive which means lowercase and uppercase letters are treated differently.
C is highly portable and is used for scripting system applications which form a major part of Windows, UNIX and Linux operating system.
C is a general purpose programming language and can efficiently work on enterprise applications, games, graphics, and applications requiring calculations etc.
C language has a rich library which provides a number of built-in functions. It also offers dynamic memory allocation.
C implements algorithms and data structures swiftly, facilitating faster computations in programs. This has enabled the use of C in applications requiring higher degrees of calculations like MATLAB and Mathematical.
Riding on these advantages, C became dominant and spread quickly beyond Bell Labs replacing many well-known languages of that time, such as ALGOL, B , PL/I, FORTRAN etc. C language has become available on a very wide range of platforms, from embedded micro controllers to supercomputers.