プログラム
別名:コンピュータプログラム
【英】program, computer program
プログラムとは、計算機に動作をさせるため用意された、処理手順を指示する一連の命令の集まりのことである。
プログラムは、その計算機の動作を具体的に指示する命令語の集まりであるといえる。特定の命令語を具体的に並べたものは、どんな処理をするものであれ、プログラムに該当する。他方、特別な命令語に依存しない、特定の問題を解く方式は、アルゴリズムと呼ばれる。
現在利用されている計算機は、ほぼ全て、ノイマン型コンピュータと呼ばれるアーキテクチャに基づいて設計されている。ノイマン型コンピュータは、アラン・チューリングが発見した計算の原理そのものに従って動作し、番地が付与された記憶装置に記録された命令語を読み込み、解釈実行する、という動作を繰り返す。実行内容には、記憶装置からの読み込み、書き込みが含まれる。記憶装置に置かれる命令語の種類とその並びによって様々な動作をさせることができる。このような論理機械は、論理的に可能な計算の全てを実行できることが証明されており、万能チューリングマシンとも呼ばれる。
プログラムを記述するために用意された命令の体系は、プログラミング言語と呼ばれる。プログラミング言語は人工言語であり、多種多様な種類が開発されている。分類としては、例えば、特定のCPUの命令語そのものである機械語、機械語レベルの命令をシンボリックに表したアセンブリ言語、より人間寄りの(自然言語に近い)表現で記述される高級言語などに大別することができる。あるいは、実行形態によって分類すれば、ソースコードをそのつど解釈して実行するインタープリタ型言語と、コンパイルによってあらかじめネイティブのマシン語に変換しておくコンパイラ型言語などに分けることができる。
C言語のようなコンパイラ型言語は、モジュール単位でコンパイルされ、オブジェクトファイルと呼ばれる出力を得る。オブジェクトファイルは、リンクされることにより一つの実行ファイルとなる。実際の場面で用いられるプログラムは、複数のプログラムやモジュールが連携して動作を行う場合がある。そのようなもので、ローカルマシン内で時分割で動作するものを多重プログラミング、平行プログラムなどと呼ぶ。また、ネットワーク越しに複数プログラムが連携するような場合、分散プログラムと呼ぶことがある。
なお、プログラムを作成する作業はプログラミングと呼ばれ、プログラミングを行う者はプログラマと呼ばれている。プログラミングやプログラマといった表現には、多分に、プログラムの設計に始まる一連の作業を全般的にこなすというニュアンスがある。このようなニュアンスのプログラマに対して、他の誰かが案出したプログラムを単にデータとして入力する役割の者は、特にコーダーと呼ばれる場合もある。
|