''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a
computer programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
book written by
Brian Kernighan
Brian Wilson Kernighan (; born January 30, 1942) is a Canadian computer scientist.
He worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie. Kernighan's name became widely known ...
and
Dennis Ritchie, the latter of whom originally designed and implemented the
C programming language
C (''pronounced'' '' – like the letter c'') is a general-purpose programming language. It was created in the 1970s by Dennis Ritchie and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of ...
, as well as co-designed the
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
with which development of the language was closely intertwined. The book was central to the development and popularization of C and is still widely read and used today. Because the book was co-authored by the original language designer, and because the first edition of the book served for many years as the ''
de facto'' standard for the language, the book was regarded by many to be the authoritative reference on C.
[
]
History
C was created by Dennis Ritchie at Bell Labs
Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...
in the early 1970s as an augmented version of Ken Thompson
Kenneth Lane Thompson (born February 4, 1943) is an American pioneer of computer science. Thompson worked at Bell Labs for most of his career where he designed and implemented the original Unix operating system. He also invented the B (programmi ...
's B.
Another Bell Labs employee, Brian Kernighan
Brian Wilson Kernighan (; born January 30, 1942) is a Canadian computer scientist.
He worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie. Kernighan's name became widely known ...
, had written the first C tutorial,
and he persuaded Ritchie to coauthor a book on the language.
Kernighan would write most of the book's "expository" material, and Ritchie's reference manual became its appendices.
The first edition, published February 22, 1978, was the first widely available book on the C programming language. Its version of C is sometimes termed ''K&R C'' (after the book's authors), often to distinguish this early version from the later version of C standardized as ANSI C
ANSI C, ISO C, and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and ISO/IEC JTC 1/SC 22/WG 14 of the International Organization for Standardization (ISO) and the ...
.
In April 1988, the second edition of the book was published, updated to cover the changes to the language resulting from the then-new ANSI C standard, particularly with the inclusion of reference material on standard libraries. The second edition of the book (and , the most recent) has since been translated into over 20 languages. In 2012, an eBook version of the second edition was published in ePub, Mobi, and PDF formats.
C was first standardized in 1989 (as ANSI X3.159-1989) and has since undergone several revisions. However, no new edition of ''The C Programming Language'' has been issued to cover the more recent standards.
Reception
''Byte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
'' magazine stated in August 1983, " 'The C Programming Language''is the definitive work on the C language. Don't read any further until you have this book!" Jerry Pournelle
Jerry Eugene Pournelle (; August 7, 1933 – September 8, 2017) was an American scientist in the area of operations research and ergonomics, human factors research, a science fiction writer, essayist, journalist, and one of the first bloggers. ...
wrote in the magazine that year that the book "is still the standard ... a bit terse". He continued, "You can learn the C language without getting Kernighan and Ritchie, but that's doing it the hard way. You're also working too hard if you make it the ''only'' book on C that you buy."
Influence
''The C Programming Language'' has often been cited as a model for technical writing
Technical writing is a specialized form of communication used by many of today's industrial and scientific organizations to clearly and accurately convey complex information to a user. An organization's customers, employees, assembly workers, engin ...
, with reviewers describing it as having clear presentation and concise treatment. Examples generally consist of complete programs of the type one is likely to encounter in daily use of the language, with an emphasis on system programming. Its authors wrote,
The book introduced the "Hello, World!" program
A "Hello, World!" program is usually a simple computer program that emits (or displays) to the screen (often the Console application, console) a message similar to "Hello, World!". A small piece of code in most general-purpose programming languag ...
, which prints only the text "hello, world" as an illustration of a minimal working C program. Since then, many texts have followed that convention for introducing a programming language.
Before the advent of ANSI C
ANSI C, ISO C, and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and ISO/IEC JTC 1/SC 22/WG 14 of the International Organization for Standardization (ISO) and the ...
, the first edition of the text served as the ''de facto'' standard of the language for writers of C compilers. With the standardization of ANSI C, the authors more consciously wrote the second edition for programmers rather than compiler writers, writing,
The influence of ''The C Programming Language'' on programmers, a generation of whom first worked with C in universities and industry, has led many to accept the authors' programming style and conventions as recommended practice, if not normative practice. For example, the coding and formatting style of the programs presented in both editions of the book is often referred to as " K&R style" or the "One True Brace Style" and became the coding style used by convention in the source code for the Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
kernels.
See also
* '' The C++ Programming Language''
* ''The Preparation of Programs for an Electronic Digital Computer
''The Preparation of Programs for an Electronic Digital Computer'' (sometimes called ''WWG'', after its authors' initials) was the first book on computer programming. Published in 1951, it was written by Maurice Wilkes, David Wheeler, and Stanl ...
''
References
External links
The C Programming Language
second edition
item information
at the Internet Archive)
- Dennis Ritchie's page containing information regarding translations, errata, etc.
- Brian Kernighan's page (containing mostly the same, slightly more up-to-date information)
Answers to The C Programming Language Exercises
{{DEFAULTSORT:C Programming Language
C Programming Language, The
C Programming Language, The
C Programming Language, The
Collaborative non-fiction books