====== C言語の概要 ====== ==== C について ==== C は,1970 年代初頭に AT&T ベル研究所で開発された手続き型言語です。\\ 元々は UNIX の記述用に開発された言語で,現在でもオペレーティングシステムの記述に使われます。\\ UNIX の発展と相まって,最も普及したプログラミング言語の一つとなりました。\\ ==== なんでCなん? ==== ところで、なぜC言語というのでしょうか?\\ それは、C言語は、B言語(びーげんご、B language)というプログラミング言語の後継として開発されたからです。Bの次なのでCというわけですね。\\ B言語とは、AT&T社ベル研究所のケン・トンプソン(Ken Thompson)によって開発されたプログラミング言語です。C言語が開発されたため、現在では使われていません。\\ B言語の名前の由来は、はっきりしていません。B言語の前身である、BCPL(Basic Combined Programming Language)というプログラミング言語の名称から来ているという説が有力です。開発者ケン・トンプソンが以前に設計していたBonというプログラミング言語から来ているとも、ケン・トンプソンの妻ボニーの頭文字から来ているともいわれています。\\ ==== 規格 ==== 1978 年に初版が発行された The C Programming Language が,C のバイブルとして有名です。 著者 B. W. Kernighan, D. M. Ritchie の名前の頭文字から,通称 K&R と呼ばれています。 最初に C の標準規格が制定されるまでは,K&R (初版) が実質的な C の規格の役割を果たしました。 その頃の C を K&R C と呼んだりします。 最初に標準規格が制定されたのは 1989 年で,ANSI C,C89 と呼ばれています。 C89 以降では,1999年に C99,2011 年に C11 が制定されています。 ==== 強味 ==== C言語は、その後広く利用されるようになりました。これには、以下のような理由がありました。 * ハードウェアに密着したコーディングが容易であった。 * 言語仕様が小さくコンパイラの開発が容易であった。 * 少ないリソースで実行可能なプログラムの開発が容易であった。 * UNIX開発での実績があった。 * (そもそも大きなプロジェクトやシステムはUNIXの仕事が多かった) * 解説書が出版されていた。 現在では、GUI環境やオブジェクト指向の普及により、C++やJava、各種スクリプト言語のシェアが増えています。それでも、C言語は業務用開発やフリーソフトウェア開発、リソースが限られている組み込みシステムなどで広く利用されています。\\ ==== その他特徴(雑多にまとめを集めたもの) ==== C言語の特徴としては、以下のことがあげられます。 * 手続き型のプログラミング言語で、構造化プログラミングに適している。 * プラットフォーム依存の言語仕様がないため、プログラムの移植性が高い。 * コンパイラ言語であり、プログラムの実行速度が速い。 * 行番号等がなく、記述の自由度が高い。 * 言語仕様が小さいプログラミング言語である。 * ハードウェアよりの低水準な処理も記述可能。 * アセンブラとの親和性が高い。多くの処理系でインラインアセンブラが使用可能。 * プログラムの実行に必要なハードウェアリソースが少なくて済む。 * 普及度が高いプログラミング言語である。 * コンパイラやC向けのエディタが豊富で開発環境を整えやすい。 * 使用可能なプラットホームが多い。 * 影響を与えたプログラミング言語が多く、C言語を学習しておけば、他の言語の学習も容易である。