プログラミング言語C
『プログラミング言語C』(原題:The C Programming Language)は、ブライアン・カーニハン (Brian W. Kernighan) とデニス・リッチー (Dennis M. Ritchie) によって書かれたC言語についての書籍である。著者名の頭文字からしばしばK&Rと略される。
プログラミング言語C The C Programming Language | ||
---|---|---|
原書・第1版 | ||
著者 | Brian W. Kernighan、Dennis M. Ritchie | |
訳者 | 石田晴久 | |
発行日 |
1978年2月、1988年3月 (2nd ed.) 1981年7月、1989年6月15日(第2版)、1994年3月(第2版訳書訂正版) | |
発行元 |
Prentice Hall 共立出版 | |
ジャンル | コンピュータ | |
国 | アメリカ合衆国 | |
言語 | 英語 | |
ページ数 |
272(原書・第2版) 343 (第2版訳書訂正版) | |
公式サイト | The C Programming Language | |
コード |
ISBN 0-13110362-8 (原書・第2版) ISBN 4-320-02692-6(第2版訳書訂正版) | |
ウィキポータル 書物 | ||
ウィキポータル コンピュータ | ||
|
初版[1]は1978年に出版され、C言語が標準化されるまでの間リファレンス的な扱いを受けていた。1988年の第2版[2]ではANSIでの標準化 (C89) を反映して大幅に変更されている。
日本語訳は初版・第2版と訳書訂正版とも石田晴久[3][4][5]。C Magazine創刊号の石田のインタビューによると、初版は某企業がC言語講座事業を行うにあたり、許可を取らずに勝手に翻訳していたものを貰い受けそれを下訳として翻訳を行なったという。
1.1 Getting Started に、例として掲載されている"hello, world"プログラムは、あらゆる「プログラミングの最初の例題」として定番となった。
K&Rスタイル
編集関数宣言と関数定義
編集1989年のANSI標準化以前のC言語に見られた、関数の引数名と型について分けて示す以下のような形式について、K&Rスタイルと呼ぶことがある(この用法では本書の初版を指し、標準化以前の、という意味で使われている)。
int foo(a, b);
int foo(a, b)
int a, b;
{
...
このようなコードは、現在ではほとんど見られない。また関数の宣言に引数の型の情報が無いため、型によるバグが検出できなくなる原因になるので、使うべきでない。
コーディングスタイル
編集本書でソースコード片を示すのに使っているインデントやブレースの位置などのスタイルを指して、K&Rスタイルと呼ぶことがある。紙面の都合などもあって整形されているので、特にこれを選ぶべきといった理由があるわけでもない。本文中には、どのようなスタイルで書いてもかまわないが一貫しているべきである、とある。
脚注
編集- ^ Brian W. Kernighan, Dennis M. Ritchie (February 1978) (english). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3
- ^ Brian W. Kernighan, Dennis M. Ritchie (March 1988) (english). The C Programming Language (2nd ed.). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110362-8. オリジナルの2008年11月6日時点におけるアーカイブ。
- ^ ブライアン・カーニハン、デニス・リッチー共著 著、石田晴久 訳『プログラミング言語C -- UNIX流プログラム書法と作法』(A5判)(初版)共立出版、1981年7月(原著1978年2月)。ISBN 978-4320021457。
- ^ ブライアン・カーニハン、デニス・リッチー共著 著、石田晴久 訳『プログラミング言語C -- ANSI規格準拠』(A5判)(第2版)共立出版、1989年6月15日(原著1988年3月)。ISBN 978-4320024830。
- ^ ブライアン・カーニハン、デニス・リッチー共著 著、石田晴久 訳『プログラミング言語C -- ANSI規格準拠』(A5判)(第2版(訳書訂正版))共立出版、1994年3月(原著1988年3月)。ISBN 978-4320026926。