C is a general-purpose programming language created by Dennis Ritchie at the AT&T Bell
Laboratories,USA in 1972.
It is a very popular language, despite being old. The main reason for its popularity is because it is a
fundamental language in the field of computer science.
C is strongly associated with UNIX, as it was developed to write the UNIX operating system(system
software) but later used for application softwares also.
Learning C programming has lot of benefits, but the foremost thing in which it helps is to
understand the underlying architecture of how things works?
Consider a situation where a person learns to drive a Car. In this modern era with advancement in
technology, we have many options when it comes to buying car. There are cars with auto-driving
mode, auto gear change features etc which reduces the manual overheads and makes driving the
car easier. Suppose the person learns driving on a auto-gear change enabled car.
After learning driving, the person applied for a driving license for which he need to pass a driving
test. The driving test is now on a manual car with no auto-gear change feature. The person was
even not able to answer some basic questions related to gears as he was not even aware of it and
eventually ended up getting disqualified.
Learning C has a similar benefit. If the person had learned driving on a manual car, he could have
easily driven the automatic car as well. Similarly, if a person learns C programming first, it will
help him to learn any modern programming language as well. As learning C help to understand a
lot of underlying architecture of operating system. Like, pointers, working with memory
locations etc.
History of C
By 1960, a numerous collection of programming languages had come into existence, almost
each for a specific purpose. E.g., COBOL was being used for commercial applications,
FORTRAN for engineering and scientific applications and so on.
At this stage, the people started thinking about the language that can program all possible
applications. Therefore, an International committee was set up to develop such a language.
This committee came out with a language called ALGOL 60 in 1960. However, ALGOL 60
never really became popular because it seemed too general.
To reduce this generality, a new language called Combined Programming Language (CPL)
was developed at Cambridge University in 1963. However, CPL turned out to be so big, having
so many features, that it was hard to learn and difficult to implement.
Basic Combined Programming Language (BCPL) was developed by Martin Richards at
Cambridge University in 1967. He aimed to solve the problem of many features to learn by
bringing CPL down to its basic good features. But, unfortunately, it turned out to be too less
powerful and too specific.
Around the same time, a language called B was written by Ken Thompson at American
Telegraph and Teli-Communications’ (AT&T) Bell laboratories, as a further simplification of
CPL in 1970. But, like BCPL, B also turned out to be a very specific.
Dennis Ritchie inherited the features of both B and BCPL, added some of his own and
developed a new programming language, C, in 1972.
For many years, the defacto standard for C was the version supplied with the UNIX. In
summer of 1983, a committee was established to create an ANSI (American National
Standards Institute) standard that would define the C language. The ANSI C standard was
finally adopted in 1989. The standard was also adopted by ISO (International Standards
Organization) and the resulting standard was typically referred to as ANSI/ISO standard C.
The version of C defined by the 1989 standard is commonly referred to as C89.
Later we have different versions of C released named to C11(released in 2011) C18(released in
2018),C23(released in 2023).
Features of C
1. C is a middle-level language.
High-level languages have been designed to give better programming efficiency. i.e., faster
program development.
Low-level languages have been designed to give better machine efficiency. i.e., faster program
execution.
C stands in between these two categories. Hence, it is often called as a middle-level level language,
since it was developed to have both: a relatively good programming efficiency and relatively good
machine efficiency.
2. C is modular (or) C is procedural programming language.
C is modular. The C code should be written in routines called functions. These functions can be
reused in other applications or programs. By passing pieces of information to these functions, we
can create useful and reusable code.
3. C is a portable language.
Portability means the ability of executing a program on one machine that was written on another
machine. A C program written on one computer system can be compiled and run on another
system with little or no modification.
4. C is a powerful and flexible language.
What you can accomplish with C is limited only by our imagination. The language itself places no
constraints on us. C is used for projects as diverse as operating systems, word processors, graphics,
spreadsheets and even compilers for other languages.
5. C is statically typed language
Statically typed is a programming language characteristic in which variable types are explicitly
declared and thus are determined at compile time. This lets the compiler decide whether a given
variable can perform the actions requested from it or not.
6. C is structured programming language:
C is a structured programming language because it divides a large problem into smaller modules
called functions or procedures, each of which handles a specific responsibility. A collection of such
functions constitutes the program that solves the entire problem.
7. C has rich set of libraries:
C is enhanced by its rich library of built-in functions, which can be applied in input/output
operations, string handling, memory management, and mathematical calculations.
8. C has rich set of operations
It is a diversified language with a rich set of built-in operators which are used in writing complex
or simplified C programs.
9. C is Easy to Extend
Programs written in C language can be extended means when a program is already written in it
then some more features and operations can be added to it.
10.C is General-Purpose Language
From system programming to photo editing software, the C programming language is used in
various applications. Some of the common applications where it’s used are as follows:
Operating systems: Windows, Linux, iOS, Android, OXS
Databases: Oracle, MySQL, etc.
Applications of C
Major parts of popular operating systems like Windows, UNIX, Linux is still written in C.
Even today, when it comes to performance (Speed of execution), nothing beats C. Moreover, if
one is to extend the operating system to work with new devices, one needs to write device
driver programs. These programs are exclusively written in C.
Mobile devices like cellular phones and palm tops are becoming increasingly popular. Also,
common consumer devices like microwave ovens, washing machines and digital cameras are
getting smarter by the day. This smartness comes from a microprocessor, an operating system
and a program embedded in these devices. These programs not only have to run fast, but also
have to work in limited amount of memory. No wonder that such programs are written in C.
To design translators- Assembler,Interpretor and Compiler, C is used
Google Chrome is designed and scripted using different programming languages one among
which is C.
Gaming: C is often used for developing computer games due to its ability to handle low-level
hardware interactions.
Financial applications: C is used for developing financial applications such as stock market
analysis and trading systems.