初版の表紙 | |
| 著者 | |
|---|---|
| 言語 | 英語 |
| 主題 | Cプログラミング言語 |
| 出版社 | プレンティスホール |
発行日 |
|
| ISBN | 0131101633 |
| Webサイト | 9p |
| この記事はCプログラミング言語に関するシリーズの一部です。 |
『プログラミング言語 C』(著者のイニシャルにちなんでK&Rと呼ばれることもある)は、ブライアン・カーニハンとデニス・リッチーによって書かれたコンピュータプログラミングの本である。後者は元々 C プログラミング言語を設計・実装した人物であり、またこの言語の開発と密接に絡み合っていたUnixオペレーティングシステムの共同設計者でもある。この本は C の開発と普及の中心となり、現在でも広く読まれ、使用されている。この本はオリジナルの言語設計者によって共著者とされ、初版が長年にわたってこの言語の事実上の標準となったため、多くの人から C に関する権威ある参考書とみなされている。 [ 1 ] [ 2 ]
C言語は、1970年代初頭にベル研究所のデニス・リッチーによって、ケン・トンプソンのB言語の拡張版として作成されました。[ 3 ] ベル研究所の別の従業員であるブライアン・カーニハンは、最初のC言語のチュートリアルを執筆しており、[ 4 ] 彼はリッチーを説得して、この言語に関する本の共著者となりました。[ 5 ] カーニハンは本の「解説」部分のほとんどを執筆し、リッチーのリファレンスマニュアルは付録となりました。
1978年2月22日に出版された初版は、C言語に関する最初の広く入手可能な書籍でした。本書で紹介されたC言語は、著者にちなんでK&R Cと呼ばれることもあり、 ANSI Cとして標準化された後のC言語と区別するためによく用いられます。[ 6 ]
1988年4月には、当時の新しいANSI C規格による言語の変更点、特に標準ライブラリに関する参考資料の追加に対応するために改訂された第2版が出版されました。本書の第2版(2024年現在、最新版)は、その後20以上の言語に翻訳されています。[ 7 ] 2012年には、第2版の電子書籍版がePub、Mobi、PDF形式で出版されました。[ 8 ]
C言語は1989年にANSI X3.159-1989として初めて標準化され、その後何度か改訂されています。しかしながら、『プログラミング言語C』の最新版は、最近の標準規格を網羅したものは発行されていません。
1983年8月、バイト誌は「『プログラミング言語C』はC言語の決定版だ。この本を手に入れるまでは、これ以上読まないように!」と評した。 [ 1 ]ジェリー・パーネルは同年、同誌でこの本について「少々簡潔ではあるものの、依然として標準的だ」と評した。彼はさらに「カーニハンとリッチーの本を買わなくてもC言語を学ぶことはできるが、それは大変なことだ。また、この本だけをC言語に関する唯一の本として買うのは、あまりにもハードルが高い」と続けた。 [ 9 ]
C言語は技術文書のモデルとしてしばしば引用され、評論家はC言語を明確な表現と簡潔な記述で評価しています。例としては、システムプログラミングに重点を置き、日常的にC言語を使用する際に遭遇する可能性のある完全なプログラムが挙げられます。著者は次のように記しています。
初版の簡潔さを維持するよう努めました。C言語はそれほど大きな言語ではなく、分厚い本では到底カバーできません。ポインタなど、Cプログラミングの中核を成す重要な機能の解説を充実させました。オリジナルの例を改良し、いくつかの章に新しい例を追加しました。例えば、複雑な宣言の扱いについては、宣言をワードに変換したり、ワードを宣言に変換したりするプログラムを追加しました。これまでと同様に、すべての例は機械可読形式のテキストから直接テストされています。
— 第2版への序文[ 10 ]

この本では、「Hello, World!」プログラムが紹介されています。これは、「hello, world」というテキストのみを出力するもので、最小限の動作Cプログラムの例として紹介されています。それ以来、多くのプログラミング言語入門書がこの慣例に従っています。
ANSI Cが登場する以前は、このテキストの初版はCコンパイラ開発者にとって言語の事実上の標準となっていました。ANSI Cの標準化に伴い、著者はコンパイラ開発者ではなくプログラマー向けに第2版を執筆することを意識的に開始し、次のように記しています。
付録Aはリファレンスマニュアルであり、標準そのものではありません。標準の要点をより簡潔に伝えるためのものです。プログラマーが容易に理解できるように作成されていますが、コンパイラ作成者向けの定義ではありません。その役割は標準自体に帰属します。付録Bは標準ライブラリの機能の概要です。これもプログラマー向けの参考資料であり、実装者向けのものではありません。付録Cは、オリジナル版からの変更点を簡潔にまとめたものです。
— 第2版への序文[ 10 ]
『プログラミング言語C』は、大学や産業界で初めてC言語に触れた世代のプログラマーたちに多大な影響を与え、著者のプログラミングスタイルと規約を、規範的な実践とまでは言わないまでも、推奨される実践として多くのプログラマーに受け入れさせました。例えば、本書の両版に掲載されているプログラムのコーディングスタイルとフォーマットスタイルは、「 K&Rスタイル」と呼ばれることが多く、 UnixおよびLinuxカーネルのソースコードで慣例的に使用されるコーディングスタイルとなりました。