In earlier days, every programming language was designed for some specific purpose. FORTRAN (Formula Translator) was used for scientific and mathematical applications. COBOL (Common Business Oriented Language) was used for business applications. Therefore, a need was felt which could be useful for most of the purposes.

C language was developed by Dennis Ritchie in 1972 at AT & T Bell laboratories, at Murray Hills, New Jersey, U.S.A.

C programming language is referred to as a base for the other programming language because other programming directly or indirectly uses the basic concepts of the C language.

C programming language can be defined in the following ways:

  1. Mother language
  2. System programming language
  3. Mid-level programming language
  4. Procedural programming language
  5. Structured programming language
1. Mother language

C language is said to be as a mother language because it provides the core and basic concepts such as array, function, string handling, etc. It is simple and easy to learn the basic syntax of the program. Most of the JVM, Kernals, compilers, etc. are written with the help of C programming concepts.

2. System programming language

C language can also be defined as system programming language because it is generally used for low level programming ( for example: for drivers or kernels). It is generally used to create hardware devices, drivers, OS, etc.

3. Mid-level programming language

C language is said to be mid-level programming language because it supports the features of both low-level programming language as well as high level programming language. C language is capable to perform both machine dependent programming as well as machine independent programming.

4. Procedural programming language

C language is also known for procedural programming language because a large piece of program is divided into small self sufficient unit to perform the specific task which is known as function, methods, routines, subroutines,etc. to speed up the software development process as well as easy maintenance. Procedural programming gives the ability of re-usability thus increasing the efficiency of the program as well as memory.

5. Structured programming language

Structured programming language is a sub-set of procedural programming language.Structure programming allow to run a program as a single structure. Structured programming encourages C programming to divide an application into a hierarchy of modules or autonomous elements.