0.3 – About C Programming Language

by subbu on July 20, 2013

Why is it important to learn C language?

C is the basis to many of the modern languages like C++,  Java,  PHP  and Python etc. Entire C is added to C++ and Objective C. The best way of learning any modern language is starting with C programming because C is so small, fast, simple and gateway to other languages.

C is still being used in operating systems like UNIX, LINIX and WINDOWS. C is also being used to develop game frameworks (direct-x), embedded applications, mobile applications (objective C) and device drivers.

History of C language:

Before 60’s:

Before 60’s different languages where used to develop software in different fields. For example COBOL was being used to develop commercial applications and FORTRAN to develop engineering and scientific applications. People were thinking that, Instead of learning different languages it is better to have a single language to develop any application in any field (general purpose).

1960:

As a result, an international committee was setup to develop a general purpose language. Later the committee came out with a language called ALGOL 60. It was not so popular because it was too general and abstract (inner details are not explained)

1963:

To reduce the abstractness and generality of ALGOL 60, a new language called Combined Programming Language (CPL) was developed in Cambridge University. Simply it is the down to earth model of (simplified) ALGOL 60. Where as CPL became a big language with so many features. So that it was so difficult to learn.

1967:

Martin Richards from Cambridge University developed a simplified version of CPL with essential features called Basic Combined Programming Language (BCPL).It was developed for first UNIX system on DEC PDC 7. Unfortunately it became so powerless and specific (only for some fields).

1970:

Ken Thomson from AT&T’s Bell Telephone laboratories developed a simplified version of CPL called B language. Even it became so specific.

1972:

Dennis M. Ritchie from AT&T’s Bell Telephone laboratories inherited some of the features of BCPL and B languages, added some of his own and developed a new language called C language. Ritchie started developing from 1969 and completed by 1972. C was originally designed for and implemented on UNIX operating system on DEC PDC 11. It restored the lost generality of BCPL and B languages.

evaluation-of-c

Ritchie developed the C language as  alternative to assembly language for system programming. Because it is small, fast, efficient and powerful language, it can be used to develop operating systems, interpreters and compilers etc. Because of its efficiency and flexibility most of the UNIX and its tools are re-written in C language.

Though C is better for system programming, it can also be used at all levels of software development like firmware, operating system and application software.

what-c-can do

Versions of C:

K&R C:

The first written standard for C language is the book called “The C programming language” by Brian W. Kernighan and Dennis M. Ritchie released during 1978. It is generally known as K&R C (After the author’s last names). Most of the programmers used to follow the recommendations of K&R to develop portable applications.

ANSI C/C89:

The growing popularity to C language resulted development of C compilers by different groups that are not involved in its original design, results ambiguous C language (unclear). In 1983 ANSI (American National Standard Institute) established a committee whose goal was to produce “unambiguous and machine independent definition for C”. In 1989 ANSI released standards for C called ANSI C. ANSI C is a modern and comprehensive definition to C language

ISO/IEC C90:

In 1990 ISO (International Organization for standardization) adapted the ANSI C  standards and released its standards with some modifications called ISO/IEC C or C90 (International Organization for Standardization/International Electrotechnical Commission)

C99:

ISO released new standards for C with new features in 1999 called ISO/IEC C99. It has adapted new features which were already being added to the compilers as extensions. This standard has adapted as ANSI standard during 2000.

C11:

It is the latest standard for C language by ISO/IEC released during 2011.

versions-of-c

What is c?

C is a small, portable, middle level, block oriented, structured, not a strongly typed, procedural, fast, efficient and powerful language.

Small: C is a small language with 32 keywords (43 incase of C11)

Potable: Same code with no or little modification works on different platforms

Why C is a middle level language?

                    According to the book “The C programming language” by K&R “C is relatively low level language” but it is being considered as middle level language as it has features of both the high level and low level languages.

High level language (HLL):

                         These are abstract, user friendly, easy to learn and easy to program languages. These are portable and machine independent. Instructions written in these languages need to be compiled or interpreted to interact with the computer. FORTRAN, COBOL and Pascal are some of the high level languages. These languages are comparatively slow and less efficient.

Low level languages (LLL):

                        These are close to computer with zero abstraction. These languages can directly interact with processor without need of translation. These languages are fast and efficient but having disadvantages like lengthy code, not human readable, difficulty in learning, difficulty in programming and difficult in debugging (rectifying errors). Machine and assembly languages are examples to low level languages.

Why C is in middle level?

                          Because C has the features of both the low level and high level languages, it is being considered as middle level language.

  • C is abstract and user friendly language (HLL)
  • C instructions can’t directly interact with the computer, needs compilation (HLL)
  • C is portable, same code can be used on different machines (HLL)
  • C is small and fast, can be used in place of assembly language (LLL)
  • C can directly access memory and perform low level operations using pointers (LLL)

c-middle-level-language

Why C is popular?

Though plenty of languages are available for computer programming, C is still being used due to its small size, fast, portability, efficiency and capable to directly interact with computer hardware. It is being used in place of assembly language where speed is critical

Previous post:

Next post: