History of 'C' language
By 1960 many computer languages had come into existence, almost each for a specific purpose. COBOL and FORTRAN were very specific languages. An international committee was setup to develop such language that can program all possible applications. This committee came out with a language called ALGOL 60. In 1960 there were some programming languages available, for example,
BASIC (Beginners All Purpose Symbolic Instruction Code)
FORTRAN (Formula Translation)
COBOL (Common Business Oriented Language)
Pascal
The drawback of these languages is that each of these languages can be used for designing only specific type of applications. e.g. BASIC can be used for developing only general/ small applications. Fortran/Pascal can be used for developing only Scientific/ Engineering applications. COBOL can be used for developing only Business/Commercial applications.
Thus, in 1960 there was not a single Computer language available that could be used to develop applications that were at the same time Engineering and Business, or Scientific and commercial. So, the United States Government set up a committee to develop an all purpose language. This committee gave its report by the fall of 1960 in the form of a language called ALGOL 60 (short for Algorithm Language 1960). The drawback of ALGOL 60 was that it was HUGE and SPECIFIC.
Next major development took place in the year 1963 when a team of professors from Cambridge University studied the language ALGOL 60 and found that it contained a lot of irrelevant code. They stripped down ALGOL 60 to form a new language, which they called CPL (Combined Programming Language). The drawback of CPL was that it was BIG and SPECIFIC.
Then, in 1967 a research sechlor from Cambridge University, named Martin Richards, studied CPL and found that CPL contained some insignificant code. In his new language he just included the Basic Parts of CPL, and thus called it BCPL Although BCPL was not BIG but it was SPECIAL.
Next major development took place in 1970. 1970 is considered as a Golden Year in the History of Computers, because many important developments took place in the year 1970. One such important development was the UNIX Operating System, development by Ken Thompson and Dennis Ritchie. The UNIX O/S that was developed in 1970 was coded in ASSEMBLY, hence it lacked Portability. Dennis Ritchie strongly wanted to make UNIX portable. For this purpose, he required a language that was as powerful as ASSEMBLY and as simple as any other language.
In the same year Ken Thompson who was at that time working with AT & T Bell Labs, studied the language BCPL, and stripped it down to form a new language which he called language 'B'.
When Dennis Ritchie studied the language 'B', he thought that by making slight modifications in 'B' he will be able to have a language that'll be as powerful as Assembly and as simple as any other language and he'll be able to use that language to recode UNIX to make it portable, so he started working on that language.
Finally in the year 1972, Dennis Ritchie came up with the advanced version of 'B'. He called the new language-'C', since it was the successor of 'B'. Then in 1973, Dennis Ritchie recorded the entire UNIX O/S in 'C' making it PORTABLE across Machines,
ALGOL 60
|
1960
|
International Committee
|
Too general, too abstract
|
CPL
|
1963
|
Cambridge University
|
Hard to learn, difficult to
implement
|
BCPL
|
1967
|
Martin Richards,
Cambridge University
|
Too specific
|
B
|
1970
|
Ken Thompson, Bell
Labs
|
Too specific
|
C
|
1972
|
Dennis Ritchie, Bell
Labs
|
Features of BCPL and B, not general, not specific, and most powerful
|
C's compactness and coherence is mainly due to the fact that it is one-man language. Mainly C was developed to write the UNIX operating system.
All the programming languages can be divided into two categories:
1. Problem oriented or high-level languages: they have been designed to give a better programming efficiency in terms of faster program development. For ex: FORTRAN, BASIC, COBOL, PASCAL, etc.
2. Machine oriented or low-level languages: they have been designed to give a better machine efficiency in terms of faster program execution. Assembly language and machine language are the examples of such kind of languages. Language C stands between these two categories. So C is often called a Middle Level Language, not high level and not low level, since it was designed to have both: a relatively good programming efficiency as compared to machine oriented languages, and relatively good machine efficiency as compared to program oriented languages.