プログラミング言語 C〔第 2 版〕

プログラミングゲンゴシー

ANSI 規格準拠

プログラミング言語 C〔第 2 版〕の表紙
プログラミング
著者:
カーニハン, B.W. / リッチー, D.M. / 石田 晴久(カーニハン / リッチー / イシダ ハルヒサ)
出版社:
共立出版
出版日:
1994年03月
ISBN:
9784320026926
在庫:
メーカー取り寄せ
3.84(26 件 / 楽天ブックス)
中級者向け
C 言語プログラミング言語ANSI 規格プログラミングソフトウェア開発コンピュータサイエンスプログラミング理論言語仕様プログラミング実技プログラミング教育

なぜ注目されているか

総合292位 ↑ 72 ランクアップ 言及 8 件・うち記事 6 件を掲載
言及数
423位
01220222023202420252026

書籍紹介

本書は, アメリカの標準規格として 1988 年末に提出された C 言語の ANSI 規格にもとづいて第 1 版を全面的に書き直した新版である。ごく常識的に言えば, C 言語はリッチー博士がベル研で 1973 年に開発して以来, 多くのプログラマに使われているから, その仕様変更はちょっと不可能ということになるが, アメリカはあえて, その C の仕様変更・機能拡張をやってのけた。これで C が近代的なプログラミング言語としてよみがえったのだからすばらしい。
本書の付録 C の要約でもわかる通り, ANSI 規格による変更 (機能拡張) はそう大幅なものではないが, 重要な改良点を多く含んでいる。C によるプログラミングは, これまで自由度がありすぎて危険だとよくいわれてきたが, ANSI によって改良された結果, C によるプログラミングの安全性は大いに向上した。これで C の寿命は一段と長くなり, C は今後ますます広く使われることになるであろう。

技書の森解説

『プログラミング言語 C〔第 2 版〕』は、B. W. カーニハンと D. M. リッチーが著し、石田 晴久 が訳した C 言語の解説書で、共立出版から刊行されています。原書は The C programming language の第 2 版 (1988 年) で、副題「ANSI 規格準拠」が示すとおり、アメリカの標準規格として 1988 年末に提出された ANSI 規格にもとづいて第 1 版を全面的に書き直した版です。版元ドットコムの登録では訳書第 2 版の初版年月日は 1989 年 1 月で、国立国会図書館の書誌ではこの ISBN の本は 1994 年 3 月刊の訳書訂正版にあたります。著者 2 人の頭文字から K&R と略されることの多いこの本は、C の文法と標準ライブラリ、UNIX のシステムインタフェースまでを 1 冊で押さえたい人に向いています。

第 0 章から第 8 章と付録 A〜D、やさしい入門から UNIX まで

目次は第 0 章「はじめに」に続き、第 1 章「やさしい入門」で変数と算術式、For 文、文字入出力、配列、関数、外部変数と通用範囲までを一巡します。第 2 章以降はデータ型 / 演算子 / 式、制御の流れ、関数とプログラム構造 (ヘッダー・ファイル、静的変数、再帰、C のプリプロセッサー) と進み、第 5 章「ポインタと配列」、第 6 章「構造体」、第 7 章「入出力」を経て、第 8 章「UNIX システム・インタフェース」ではファイル記述子や低水準入出力、Fopen と Getc の実現、ディレクトリのリスティング、記憶割当てを例として扱います。巻末には付録 A の参照マニュアル、付録 B の標準ライブラリ、付録 C の変更点の要約、付録 D のパソコン用の C 処理系と日本語処理機能が続きます。第 1 章で言語の全体像を先に見せ、第 2 章以降で同じ題材を細かく掘り下げる組み立てと読めます。

ポインターと構造体に表れる C の設計

C 言語 の学習でつまずきやすいのは、変数がメモリ上のどこにあり、アドレスをどう受け渡すかを意識しなければならない点です。配列の名前が先頭要素へのポインターとして扱われ、ポインターに整数を足すと要素の大きさの分だけ先を指す、という約束を理解すると、文字列操作も関数への引数渡しも同じ原理で説明できるようになります。第 5 章はポインターとアドレスから始まり、アドレス計算、文字ポインターと関数、ポインター配列、多次元配列、コマンド行の引数、関数へのポインター、複雑な宣言までを扱い、第 6 章は自己参照的構造体やテーブル参照、共用体、ビット・フィールドへ進みます。スタックやヒープといった メモリレイアウト の知識と結びつけて読むと、第 8 章の記憶割当ての例が、ライブラリの内側で何が起きているかを示す題材として効いてきます。

ANSI 規格が前提、後の規格改訂との関係

ANSI 規格では関数の引数の型を宣言する関数プロトタイプが取り入れられるなど、型の検査が強められました。版元の紹介文も、ANSI による改良で C によるプログラミングの安全性が大いに向上したと述べ、変更点は付録 C に要約されています。一方で、C の国際規格 ISO/IEC 9899 はその後も改訂が続き、C の規格を扱う作業部会 WG14 のページによると改訂版の C23 が 2024 年に採択されています。本書が前提とするのは 1988 年末の ANSI 規格の C であり、C99 以降の改訂で加わった機能は扱いの外にあるため、新しい規格の機能は規格の解説や処理系の文書で補う必要があります。付録 D のパソコン用の処理系の話題も、刊行当時の環境を前提にしたものとして読むのが自然です。

目次の組み立てを見る限り、第 1 章から文字入出力や配列、関数まで一気に進むため、プログラミングの考え方そのものを一歩ずつ教える入門書とは性格が違います。別の言語で手を動かした経験があり、C の言語仕様を設計者の一人と共著者の言葉で一度通しで押さえたい人、OS や組み込みの仕事で C のコードを読む機会がある人には、文法と標準ライブラリ、システムインタフェースの基礎を 1 冊でつなげられる本です。低レイヤーへ進む次の一冊を探している場合は OS と低レイヤーの技術書の選び方 と合わせて読むと、本書をどこに置くかが決めやすくなります。

言及した記事 (6 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: