Table of Contents
The Creation of C
The c
programming language was created by Dennis Ritchie in 1971 . It is derived from the B
programming language , created by ken Thompson in 1969 . The B programming language is derived from the BCPL
programming language , created by martin Richards in 1966 .
All these languages , were affected one way or another , with the Algol 60
programming language , created in 1960 .
The C programming language had similarities with both BCPL and B , but mainly differed in being a typed language .
The reference books for the C programming language , between 1971 and 1974 , were :
- C Reference Manual , 1974 , Dennis M. Ritchie .
- Programming in C a tutorial , 1974 , Brian W. Kernighan .
The Classic , or traditional , or k&R , C
Later on , some changes were made to the programming language . Such as , the addition of new types like: short
and union
, a notation for casting: (type-name) expression
, and the ability to create a name for new types using the: typedef
operator . This version of C , is known as classic or traditional or k&R
C .
The referencefor the c
programming language between 1976 – 1983 was :
- The C Programming Language first edition , 1978 , Brian Kernighan and Dennis Ritchie .
Some syntactic changes , existed between C
1974 , and classic C
, such as in initializing a variable .
int y 3; /* Initialize a variable in C 1974 */ int y = 3; /* Initialize a variable in C 1978 */
And some semantic changes , existed between C
1974 , and classic C
, for example :
y=-2; /* Decrement y by 2 , in C 1974 */ y=-2; /* Assign -2 to y , in C 1978 */
A portable library for input and output , was also described in the reference book .
ANSI C or C89 or C90
After that , further changes were made to the language , such as the addition of the enum
type , and the const
qualifier , and some semantic changes . As such , there was a necessity to standardize the C programming language.
In 1983 , the American national standard institution formed the X3J11
committee . The aim of this committee was to standardize the C programming language .
In 1989 , the committee released the ANSI C 1989
standard , adopted by the international standardization organization ISO as ISO/IEC 9899:1990 .
Ansi C introduced a new way to declare functions , the old way could still be used with some limitations .
For example in classic C , function could be declared as follow :
name (argument list, if any) argument declarations, if any { declarations and statements, if any }
Whereas in ANSI C , functions are declared :
return-type function-name(argument declarations) { declarations and statements }
ANSI C also changed the semantic meaning , of hexadecimal and octal integer literal , which are now first considered to be of type int , instead of being of type unsigned int
.
ANSI C , also introduced the standard C library , which contains a set of portable headers . The headers declare some functions , for example a declaration of input and output functions , and define some macros , and types .
The draftfor ISO/IEC 9899:1990 C
standard , can be found here .
Later revisions
After the release of the ISO/IEC 9899:1990 C
standard , standardization efforts continued . These standardization efforts , are just revisions of the C
standard .
These revisions , contain some additions or removals to the standard C library , for example , the removal of the gets
function , in the c11
revision .
Or they are , just some syntactic or semantic changes to the C language , like the addition of some keywords , such as the _Atomic
keyword , in the c11
standard .
The revisions are as follow :
- C95 : ISO/IEC 9899:1990/AMD1:1995 amendment .
- C99 : ISO/IEC 9899:1999 draft .
- C11 : ISO/IEC 9899:2011 draft .
- C17 : ISO/IEC 9899:2018 draft .
- C2x : current working draft .
All versions of C , are more or less forward compatible .
Aim of the C language
A C program , is compiled to machine language . It is portable , as long as you stick with the C standard , and the C standard library .
So the C programming language is portable , you have direct control of the machine , and there is no virtual machine or interpreter , sitting between your programs and the computer , as such the C
language is used for system programming .
When C was created , its was created to be the programming language , of the Unix operating system .