【しーげんご】
C言語 とは?
最終更新:
💡 システムの実装を支え、多くの言語に影響したC
1970年代初めにベル研究所のデニス・リッチーが開発した汎用プログラミング言語。Unixの実装とともに発展し、ポインタなどでメモリを扱う。C++など多くの言語に影響を与えたが、すべての言語の祖先ではない。
📌 このページのポイント
- 1969〜1973年に発展し、開発が特に進んだのは1972年
- Unixの実装とともに発展し、Linuxカーネルでも使われる
- ポインタや動的メモリを扱う際は、範囲や寿命の管理が重要
- 多くの言語に影響したが、Cより前にも言語は存在する
C言語っていつ生まれたの?
ベル研究所のデニス・リッチーが、Unixの初期の開発と並行して育てた言語だよ。本人の回顧では1969〜1973年に成立し、特に1972年に開発が進んだと説明している。1973年にはUnixカーネルをCで書き直せる段階になったんだ。
今でもOSで使われてるの?
Cなら必ず速くなるの?
メモリは全部自分で確保して解放するの?
全部ではないよ。普通のローカル変数にはブロックを出ると寿命が終わるものもある。一方、mallocで動的に確保した領域は、失敗を確認し、不要になったらfreeで解放する必要がある。ポインタの参照先がまだ有効か、配列の範囲を越えないかにも注意するんだ。
ほかの言語のご先祖さまなの?
多くの言語に影響したけれど、すべての言語の祖先ではないよ。C自身にもBCPLやBという前身があり、さらにFortranやAlgolから影響を受けた。図の下段はCに影響された言語の例で、直接の親子関係を全部表す家系図ではないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「C言語」って出てきたら「OSなどのシステム実装を支え、多くの言語に影響した言語」と思えればだいたいOK!
📖 おまけ:英語の意味
「C Language」 = Cという名前のプログラミング言語
💬 前身はB言語。リッチーは一文字の名前を引き継いでCとしたと説明し、アルファベット順なのかBCPLの文字順なのかは決めていないとしているよ