Saturday, August 23, 2008

C Learnings

This week, our lesson is all about C language

C (programming language) is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system

Although C was designed for implementing system software, it is also widely used for developing application software.

It is widely used on a great many different software platforms and computer architectures, and several popular compilers exist. C has greatly influenced many other popular programming languages, most notably C++, which originally began as an extension to C.

C exhibits the following more specific characteristics:

  • non-nestable function definitions, although variables may be hidden in nested blocks

  • partially weak typing; for instance, characters can be used as integers

  • low-level access to computer memory by converting machine addresses to typed pointers

  • function pointers allowing for a rudimentary form of closures and runtime polymorphism

  • array indexing as a secondary notion, defined in terms of pointer arithmetic

  • a preprocessor for macro definition, source code file inclusion, and conditional compilation

  • complex functionality such as I/O, string manipulation, and mathematical functions consistently delegated to library routines

  • around 30 reserved keywords

The origin of C is closely tied to the development of the Unix operating system, originally implemented in assembly language on a PDP-7 by Ritchie and Thompson, incorporating several ideas from colleagues. Eventually they decided to port the operating system to a PDP-11. B's lack of functionality to take advantage of some of the PDP-11's features, notably byte addressability, led to the development of an early version of the C programming language.


In 1978, Brian Kernighan and Dennis Ritchie published the first edition of The C Programming Language. This book, known to C programmers as "K&R", served for many years as an informal specification of the language. The version of C that it describes is commonly referred to as "K&R C". The second edition of the book covers the later ANSI C standard.


RELATED PERSONS:

Brian Wilson Kernighan
-is a computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed greatly to Unix and its school of thought. He is also coauthor of the AWK and AMPL programming languages. The 'K' of K&R C and the 'K' in AWK both stand for 'Kernighan'.


Dennis MacAlistair Ritchie
-is an American computer scientist notable for his influence on C and other programming languages, and on operating systems such as Multics and Unix. He received the Turing Award in 1983 and the National Medal of Technology in 1998.

No comments: