History of C Programming Language
In this article, I am going to discuss the History of C Programming Language. Please read our previous article where we give a brief introduction to C Programming Language. At the end of this article, you will understand the history and evolution of the C Programming Language in detail.
History of C Programming Language:
The Programming Language term is started in the year 1950, with the Language called FORTRAN. From the FORTRAN language, another programming language is developed called ALGOL (Algorithmic Language). The beginning of C is started in the year 1968 with the language called BCPL (Basic Combined Programming Language). In the year 1970 BCPL, another programming language is developed by REN THOMPSON it is called B-Language (Basic Language). In the year of 1972, DENNIS RITCHIE developed C-Programming Language at AT&T BELL LABORATORIES for developing system software. In the year of 1978, Ritchie and Kernighan released the next version of C-Language i.e. “K and R-C”. In the year 1980, ANSI (American National Standard Institute) released the next version of the C Language called “ANSI-C”. In the year 2000 ISO Standard C is released called “C 99”. On the 8th of Dec. 2011, the latest version of C is released with the name called “C 11”. In alphabetical order, only the name C-Language is given. Forgiving the name C++ there is a reason nothing but post features of C-Language.
Evolution of C Programming Language:
In the modern-day era, if any tech giants desire to design an operating system, then he/she can design it inside a matter of few days or months due to the availability of a wide variety of sources on the internet and community collaborations.
Let’s move back to fifty years, where no internet and no community collaborations were there. Without the above supports, imagine what had been the challenges faced by computer scientists for developing an efficient operating system? Are they succeed in producing an efficient Operating System? If succeed, then what programming language they used? And why? We’ll find answers to all these questions in this article.
The Birthplace for world-class inventions:
The AT&T Bell Laboratories is the place where the actual development of the C Programming language was done. Not only the C language but the most popular and notable inventions like Telephone, Transistor, Laser, Communication satellites, Solar cells, and many more are developed from this lab.
It was around 1961, where the actual development of the Multics operating system was started by three organizations such as MIT, General Electric, and Bell Laboratories.
Bell invested a huge amount of manpower and money in the Multics project. But later in 1969, Bell Labs was decided to withdraw from the Multics project because as per the planning schedule Multics operating system was not completed and there were no guaranteed dates regarding the delivery of the operating system.
After the withdrawal, the people who are working from Bell in the Multics were returned to the Bell Labs.
Rise of Unix Operating system:
After the Multics project team came back to Bell Labs, KenThompson, Dennis M Ritchie and few other team members started working on a new operating system with the knowledge that they have gained in the Multics project.
Within a few years, the entire team worked ceaselessly and developed a new operating system. Before introducing this new operating system to the outside world, as an experiment, Bell started using this for their internal works.
At that time, MULTICS (Multiplexed Information & Computing Service) was one of the most popular multitasking operating systems in the world. But coming to Bell’s new operating system is a Uni-tasking Operating system. So scientists were decided to name it UNICS (Uniplexed Information & Computing service) because its pronunciation is a bit similar to MULTICS.
But later, the operating system was transformed from Uni-tasking to Multi-tasking but the name was stuck over there and then eventually changed to UNIX.
The birth of Assembler:
Initially, computers were programmed using a low-level language called Machine language or Binary language. Binary language is a combination of 0’s and 1’s. The problem with Binary language is, It is completely platform-dependent and requires more time to understand and implement a new feature.
To reduce this complexity, computer scientists came up with a new programming language called “Assembly level programming”. KenThompson wrote a program called Assembler which will convert the program written in “Assembly level language to Machine language”. With the help of Assembler, the complete Unix operating system was written in ALP.
The Developer’s wrong choice:
As the requirements were changing day by day in the world of computer science, scientists felt difficult to code in assembly language. They wanted to bring up more portable and easy-to-write programming languages.
At that time (1967), Martin Richard’s BPCL was the trending programming language. From BPCL, Ken Thomson developed a new programming language called “B”. Few of the Unix developers were thought to replace assembly-level language with B. But later they concluded that “B” is not an efficient programming language to design an operating system.
Why B is not an efficient language?
Because “B language” is a type-less programming language. There was no concept of data types in B. In B Every variable will occupy a word-sized memory.
Because of no data types, it might be an easy-to-write programming language but not an easy-to-maintain programming language. It means that the compiler doesn’t throw any warnings or errors for invalid variable assignments at the compilation phase. Which may lead to unexpected crashes during runtime and create hard to debug situations.
Evolution of C Language:
By adding extra features to B, computer scientist “Dennis M Ritchie” came up with a new programming language called “NB (New B language)”.
In NB language, Dennis Ritchie came up with solutions to every problem that B was unable to solve. He designed C in a well-structured manner and introduced concepts such as structures & datatypes, which made C a strictly typed programming language. Later in 1972, NB was officially named a C, and Unix was completely re-written in C language.
C language got a huge response among developers and over a wide range of communities throughout the world. To help the communities Kernighan and Ritchie authored a Book known as “The C Programming Language” also known as “The K&R standard”. Later in 1989, ANSI standardized C language and the name changed to ANSI C or C89and after a year ISO adopted C and the name gradually changed to ISO C or C90.
Later on, many revisions were done on C such as C99, C11, C18 were released and many new features were introduced into it.
HISTORY OF C Language
‘C’ language was designed in 1972 by “DENNIS RITCHIE”. Ritchie is one of the software engineers in AT & T Bell labs [ American Telephone & Telegraph], located at Murray hills, New Jersey, USA.
C language adopted [taken] from B language, designed by KEN THOMSON, a programmer in AT & T bell labs.
BCPL was taken from ALGOL.
In 1989 ANSI [ American National Standards Institute] released a new version of c language with the name “ANSI-C”, which is familiar with the name “C-89”.
In 1999 IOS [ International Organization for standardization], ISO [ International standard Organization] released a new version of c language with the name “C-99”.
Basically, C language was designed for rewriting of UNIX operating system.
Now a day’s we can create and execute a c program on most systems with any processor. Hence c is called a machine-independent programming language. i.e. we can run the c program on 80386 / 486 / 586 / core i3 / i5 / i7 / i9 / AMD,…
The languages like 8056 / 8066 are working only 8056 and 8066 processors. Hence, they are called machine dependent programming languages.
But c is a platform-dependent programming language. i.e. the c program created in one operating system is not able to execute in other operating systems. Due to this, we can design only standalone applications like calculator, FM, media player, anti-virus, commercial programs, etc, and not web applications.