C is a general purpose and structured programming language. It is a procedural, high-level and machine independent programming language.
C was evolved in the 1970s from ALGOL, BCPL and B by Dennis M. Ritchie and his team at the Bell Telephone Lab, Inc.(now AT & T Bell Lab) as a system programming language to construct utilities running on Unix.
C uses many concepts of these languages and added the concept of data types, rich set of operators, clean syntax, direct memory accessibility, simple set of keywords and many other powerful features.
It was originally created for the specific purpose of writing Operating System software. Since it was developed along with the UNIX operating system, it is strongly associated with the UNIX operating system and its command.
It is famous for writing system software e.g operating system, device driver, database management system, game engines and many more.
It was designed to be compiled to produce low level access to memory and language constructs that map efficiently to machine instruction sets, all with minimal runtime support. Because of its low level memory accessibility, the language was plotted to encourage cross-platform programming.
The origin of C is closely tied to the development of the UNIX operating system, originally implemented in assembly language on a PDP-7 (Programmed Data Processor) by Ken Thompson and Dennis M Ritchie, consolidating several ideas from his team. In the end, they decided to port the Operating system to a PDP-11.
The original PDP-11 version of UNIX operating system was also developed in assembly language.
After that, Ken Thompson desired a programming language to make utilities for the new platform. So, he tried to make a Fortran compiler, but the idea didn't work. Then, he created a cut-down version of the freshly developed BCPL ( system programming language) The official description of BCPL was not available at the time and then Thompson modified the syntax of BCPL to be less wordy, producing the similar but somewhat simpler B language.
However, some utilities were ultimately written in B because it was very slow, and not able to take advantage of PDP-11 features such as byte addressability. That time Dennis Ritchie was improving the B language, which resulted in a new language called C.
In 1973, UNIX version 4 was released and the UNIX kernal was extensively re-developed in the C language.
Now, we have to understand what the structured, general purpose and procedural programming language means. Let us start with the structured programming language, what is it?
In structured programming a program is broken down into small independent tasks that are small enough to be understood easily, without having to understand the whole program. Each task has its own functionality and performs a specific part of actual processing. Each part again broken down into subtasks if necessary.
The program designed using the structured programming technique is well defined control structures so debugging and testing will be easy.
There are some following reasons for preferring structured programming:
Procedural programming is a programming technique, which is derived from Structured programming, based on the concept of procedure call. It contains a series of computational steps to be carried out. Any of the procedures might be called during a program's execution, including by other procedures or itself.
There are many other procedural programming languages e.g BASIC, COBOL, FORTRON, PASCAL etc.
General-purpose programming language is a programming language designed to be used for writing softwares in a broad variety of application domains .
Like any other programming language, the original version of C programming language has undergone a number of revisions.
During the 1970s, C had evolved into what is known as, “Traditional C”.
The language became more popular after the publication of the book ‘The C programming Language’ by Brain Kerningham and Dennis Ritchie in 1978 which is first edition of C and the language come to be known as “K&R C” among the programming community.
To assure that the C language remains standard, in 1983, American National Standard institute(ANSI) appointed a technical committee to define the standard for C.
The Committee approved a version of C in 1989 which is now known as ANSI C. It was approved by the International Standard organization(ISO) in 1990.
After the above standards the three more C standards (link) came out which are C99 ,C11 and C18.