The C Language is developed for creating system applications that direct interacts to the hardware devices such as drivers, kernels etc. C programming is considered as the base for other programming languages, that is why it is known as mother language.
It can be defined by following ways:
1. Mother language
2. System programming language
3. Procedure-oriented programming language
4. Structured programming language
5. Middle-level programming language
1) C as a mother language
C language is considered as the mother language of all the modern languages because most of the compilers, Java virtual machine’s (JVMs), Kernals etc. are written in C language and most of languages follows C syntax e.g. C++, Java etc. It provides the core concepts like array, functions, file handling etc. that is being used in many languages like C++, java, C# etc.
2) C as a system programming language
A system programming language is used to create system software’s. C language is a system programming language because it can be used to do low level programming (e.g. driver and kernel). It is generally used to create hardware devices, Operating Systems, drivers, kernels etc. For example, linux kernel is written in C.
NOTE: It can’t be used in internet programming like java, .net, php etc.
3) C as a procedural language
A procedure is known as function, method, routine, subroutine etc. A procedural language specifies a series of steps or procedures for the program to solve the problem. A procedural language breaks the program into functions, data structures etc. C is a procedural language. In C, variables and function prototypes must be declared before being used.
4) C as a structured programming language
A structured programming language is a subset of procedural language. Structure means to break a program into parts or blocks so that it may be easy to understand. In C language, we break the program into parts using functions. It makes the program easier to understand and modify.
5) C as a middle-level programming language
C is considered as a middle level language because it supports the feature of both low-level and high level language. C language program is converted into assembly code, supports pointer arithmetic (low level), but it is machine independent (feature of high level). Low level language is specific to one machine i.e. machine dependent. It is machine dependent, fast to run. But it is not easy to understand. High Level language is not specific to one machine i.e. machine independent. It is easy to understand.