用語解説 |
C言語の特徴や歴史について簡単に説明します。本学習ページを学習するのに必要な項目ではありません。学習していない用語があるかもしれませんが、気にせず、気が向いたら読んでください。
C言語の特徴として
が挙げられます。C言語では、高級言語であるFORTRANやBASICのように人間が理解しやすいプログラムを書くことができるのに加えて、アセンブリ言語のような低級言語でしかできないプログラムも書くことができます。C言語を「高級アセンブリ言語」と呼ぶ人もいるくらいです。
あるコンピュータで動いているプログラムを別の種類のコンピュータで動くようにプログラムを書き換えることを「移植する」といいます。アセンブリ言語はコンピュータの種類が異なるとまったく異なるので、アセンブリ言語のプログラムの移植作業は困難な仕事です。FORTRANやBASICなどの言語はコンピュータの機種が違ってもほぼ同じプログラムで書かれるが、ハードウェアを直接制御するのが難しいため、ハードウェアに密着したプログラムを書くことが難しくなります。しかし、C言語では、ある程度規格ができておりハードウェアに密着したプログラムも書けるため、ハードウェアを直接使用するプログラムでも移植することは比較的容易です。例えば、C言語で書かれているUNIXというオペレーテングシステム(オペレーテングシステムはハードウェアとアプリケーションプログラムを結ぶものである)は多くのコンピュータに移植されています。
C言語の欠点としては、気を付けなければ、非常に分かりにくいプログラムができてしまうことです。また、コンパイルチェックが不十分なために、実行時のエラーに悩まされることがよくあるので、注意深くプログラミングする必要があります。
C言語は比較的最近開発された言語で、下に示したように、ALGOL60から、CPL、BCPL、Bを経て、生まれたプログラミング言語です。C言語はもともとコンピュータシステム記述用に開発されたものです。
1978年に出版されたBrian W. Kernighan とDennis M. Ritchie 著『The C Programming Language』第1版はC言語仕様の業界標準になり、この本に準拠したC言語は、著者2人の頭文字をとって、K&R Cと呼ばれています。しかし、厳密でより現代的なC言語仕様の規格統一が進められ、その規格はANSI規格と呼ばれています。(ANSIとはAmerican National Standards Institute
の略であり、日本のJISに相当します。)現在は同書の第2版が出版されています。
C言語はさらに発展しており、C++がC言語から開発されています。
ALGOL60 (1960)
↓
CPL (1963)
↓
BCPL (1967)
↓
B (1970)
↓
C (1972)
↓
K&R C (1978)
↓
↓
__________
↓ ↓
ANSI C (1989) C++ (1982)
図 プログラミング言語の系譜 ( )内は発表年
本学習ページでは、C言語処理系を使わずに学習をすすめていけるように構成されています。具体的には、処理の流れは「Cシミュレータ」を使って確認していきます。そのため、C言語処理系をもっていなくても、C言語の基本が習得できるはずです。
しかし、本格的にC言語を用いてプログラムを作成するには、C言語処理系を用意しなければなりません。代表的になWindows用のC言語処理系として、
があります。MS-DOS 用のC言語処理系として
があり、特にLSI C-86 Ver 3.30 試食版は、「スモールモデルしかコンパイルできない」という制限をつけたフリーソフ トウェアです。