プログラム言語
■ プログラム言語。
人間がコンピュータに命令を出すための言語。
機械語に近い低水準言語と日常言語に近い高水準言語に分類できる。
(1) 低水準言語。Low Level Language。
命令を0と1で表す機械語や、
機械語の命令をアルファベット符号に置き換えたアセンブラ言語など。
特定のコンピュータアークテクチャに対する依存度が高い言語。
機械が理解しやすい言語。
(2) 高水準言語。High Level Language。
日常言語に近い形の文や数式でプログラムの記述ができる言語。
機械から独立性の高い言語となっており、
低水準言語のように特定のコンピュータアーキテクチャに依存することがない。
人間に理解しやすい言語。
■ 言語プロセッサ。
低水準言語や高水準言語で記述されたプログラムを
機械語に変換(翻訳)するプログラム。
コンパイラ方式とインタプリタ方式がある。
(1) コンパイラ方式。
一括して機械語に翻訳してから実行する。
インタプリタ方式と比較して実行性能が高いが、デバッグ作業には時間がかかる。
(2) インタプリタ方式。
ソースプログラムの命令文を1つづつ解釈しながら、すぐ実行するもの。
プログラムの作成と実行(テスト)を対話形式で行なうことができる。
コンパイラ方式と比較して、処理の性能は劣る。
■ プログラムの性質。
プログラムは、
その性質によって、以下のように分類できる。
(1) 再配置可能プログラム。Relocatable。
主記憶上のどのアドレスにロードしても実行可能なプログラム。
再配置可能プログラムでは、命令のアドレス部が、相対アドレスで記述されている。
このため、このプログラムを実行する際には、
この相対アドレスに先頭アドレスを加算して有効アドレスとすればよい。
すなわち、コードを書き換えることなくそのまま使える。
(2) 再使用可能プログラム。Reusable。
メモリ上に、ほかのタスクが使用し終わったプログラムがあれば、
次のタスクは改めてそのプログラムをハードディスクからロードしなくても、
正しく再実行できるプログラム。
再使用可能プログラムでは、プログラムの実行中にある変数を変更しても、
プログラムの最後(または最初)でリセットする。
このため次のタスクは、一度使われたプログラムをそのまま再使用することができる。
再使用可能プログラムには、
逐次再使用可能プログラムと再入可能プログラムの2種類がある。
(3) 逐次再使用可能プログラム。Serial Reusable。
再使用可能プログラムの1種。
メモリ上に他のタスクが利用したプログラムが残っていれば、
次のタスクがそのまま再利用できる。
逐次再使用可能プログラムでは、
他のタスクがプログラムを使用している間は、
次のタスクは同じプログラムを使うことができない。
プログラムは複数のタスクを1つ1つの順番に実行する。
プログラムの実行によって変化しない作業部分と、
プログラムの実行によってリアルタイムに変化するデータ部分とが、
メモリ上に混在しているためである。
(4) 再入可能プログラム。Re-entrant。
再使用可能プログラムの1種。
メモリ上に他のタスクが利用したプログラムが残っていれば、
次のタスクがそのまま再利用できる。
再入可能プログラムでは、
あるタスクがプログラムを使用している最中でも、
次のタスクが同じプログラムを使用することができる。
プログラムは複数のタスクを並列に処理する。
プログラムの実行によって変化しない作業部分と、
プログラムの実行によってリアルタイムに変化するデータ部分とが、
メモリ上で分離されており、またタスクごとにデータ領域を用意できるためである。
(5) 再帰プログラム。Recursive。
直接または間接的に自分自身を呼び出すことが可能なプログラム。
代表的な再帰プログラムには、階乗計算プログラムなどがある。
再帰プログラムでは、
処理に必要なデータを一時的に記憶しておくためにスタック領域を使用する。
この領域に最も適したデータ構造はLIFOである。
以上。
2004/03/10 pm