I-14-1. C言語の歴史と特徴、開発事例と開発手順

Cプログラミング学習の入り口として、C言語の歴史や特徴、他の言語との比較、Cによる開発事例を解説する。また、プログラムを開発する手順として、エディタによるプログラム作成からコンパイル、プログラム実行までの流れを説明する。

【学習の要点】

* CはUNIXなどのシステムソフトからアプリケーションまで、非常に幅広く使われている言語である。

* Cは強力なポインタ機能を有し、OSやドライバの記述に必要な低レベル処理が記述できる。

* Cは他の言語に比べるオーバーヘッドが少なく、一般に高速である。

* Cのソースコードはテキストエディタなどを使って書き、コンパイルすることでプログラム開発の流れがつかめる。

図I-14-1. Cプログラミングの流れ

【解説】

1) Cの歴史

Cは1970年代前半に開発されたプログラミング言語である。

Cの歴史はUNIXの歴史と切り離すことができない。UNIXはCで開発され、UNIXの普及がCを支え、Cの普及がUNIXを支えてきた。他の様々なプログラミング言語が誕生し普及した現在においても、最も重要なプログラミング言語の一つとして位置づけられている。

2) Cの特徴

Cの一番の特徴といえるのが、強力なポインタ機能である。この強力なポインタ機能により、アセンブリで開発するような低レベル処理(ハードウェア制御などの処理)も可能にし、多くのOS、周辺機器のドライバソフトウェア、他のプログラミング言語の処理系などがCで開発されている。ソースコードの記述の自由度も高く、高度なプログラミングができる反面、プログラムの保守性やセキュリティなどの面でリスクを抱えている。

3) 他の言語との比較

アセンブリと比較すると、Cは人間が使う言葉に非常に近い記述ができ、高級言語と呼ばれるが、低レベル処理が可能であることから、他の高級言語とアセンブリとの中間に位置づけられることが多い。

C++はCにオブジェクト指向を取り込んだ言語である。その他のCの後発言語の多くは、Cのポインタ機能などの一部をあえて隠蔽しており、プログラムの保守性やセキュリティ面、学習の容易性の利点がある反面、ハードウェア制御といった低レベル処理には適さないものとなっている。これらの言語で書かれたプログラムでは、上記利点を得るために、ソースコードに記述されないさまざまな処理を内部で行うが、Cではそのような処理がほとんどなく、オーバヘッドが小さい。よって、Cで書かれたプログラムは、他の言語で書かれたものよりも一般的に高速に動作する。

4) Cのプログラム作成と実行の流れ

Cのプログラミングの流れは、図Ⅰ-14-1に示したような手順になる。

* テキストエディタを用いてソースコードを記述する。

* gccなどのコンパイラを用いてコンパイルを実行する。gccの場合、a.outという実行ファイルができる。

* 実行ファイルを実行する。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。