プログラムとプログラミング
人間が会話をするときに使う、日本語、英語、フランス語を 自然言語(natural language) に対して、プログラムを人工言語(artificial language) といいます。つまり、コンピュータという機械と会話するための人工的な言語といういう意味です。
コンピュータは、通常、Word(ワープロソフト)、Excel(表計算ソフト)などアプリケーション(application) という、ソフトウエアを使うので、(陽に)プログラミングは必要ありません。基本的には、このようにプログラムによりコンピュータに命令をする必要があります。また、アプリケーションもプログラミング言語で記述されています。
この実習では、C言語(C language) というプログラミング言語について学びます。
機械語とは
コンピュータは、0 と 1 のみ(2進数)で表現された機械語(machine language) で、命令、その他の情報を表現します。そのため、コンピュータに命令を送る場合も2進数で表現しなければなりません。例えば、
2進数 | 16進数 | |
11000101 | C5 | |
01110101 | 75 | |
10110110 | B6 | |
01010110 | 56 | |
11111000 | F8 | |
00010101 | 15 | |
10100110 | A5 |
となります。2進数で表現される命令は、より人間が扱いやすいように16進数として表現します。初期のコンピュータは、上の2進数を直接入力して命令をしなければなりませんでした。
高水準言語(高水準プログラミング言語)
さらに、研究が進んで、コンピュータに命令を与える場合に、人間が会話する言語(自然言語、natural language)に近い人工言語(artificial language)が開発されました。もっとも最初に開発された高水準言語として、
FORTRAN、COBOL、LISP、C
などが知られています(昔は、大文字しか表現できないコンピュータが多かったので通常、大文字で表現します)。その後、並行して、オペレーティングシステム(operating system) の研究の中で新しい高水準言語が作られました。
皆さんが使っているWindows XP や、Linux というオペレーティングシステムも上のC言語で記述されています。
C言語とは
プログラミング言語Cとは、1970年代に米国のATT のベル研究所で、Unix というオペレーティングシステムを開発するために開発された言語です。オペレーティングシステムという効率を要求されるシステムを記述するため、効率の良いプログラムが記述できると言われています。
最近では、最もよく使われる言語として知られています。そのため、いろいろなソフトウエアを開発するために使われていますが、効率のよい記述をするめに細かな記述が要求されます。
コンパイル方式
高水準プログラミング言語も、コンピュータが命令として理解するためには、機械語(2進数)に変換しなければなりません。その方式をコンパイル(compile、翻訳) といいます。以下のように処理します。
<原始プログラム> | コンパイル | <オブジェクトファイル> | リンク | <実行形式ファイル> |
実は、コンパイルの後に、リンク(link)という処理をして、実行形式ファイルを生成します。実行形式ファイルを実行することでプログラムを実行します。