プログラムは,最終的には'0'と'1'のビット列である機械語に変換されて実行される.しかし,どれも
同じような方法で.機械語に変換される訳ではない.
機械語のビットパターンを人間に分かりやすいように記述した言語である.人間が書いた
プログラムは,機械語と1対1の関係があり,簡単に機械語に直せる.これは,アセンブラー
というプログラムで機械語に直す.諸君が学習したCASL IIはアセンブリ言語の一つであ
る.
人間に分かりやすいプログラミング言語である.マシン語と1対1の関係はなく,コンパイ
ラーが記述内容に従いマシン語に翻訳する.同じ言語で書いた同一のプログラムでも,コ
ンパイラーが異なれば,異なるマシン語になる.諸君が学習したC言語やFortranは高級言
語である.
高級言語のコンパイラーは実行に先立って,すべて機械語に変換する.変換した機械語を
一気に実行するために,計算速度は速い.それに対して,インタプリタは,実行時にプロ
グラムの各行ごと,機械語に変換して実行を行う.私は,インタプリタであるプログラミ
ング言語PerlやPHPをよく使う.
高級言語とインタプリタの中間的な方法で機械語に変換する.プログラムは実行に先立っ
て,機械語に近い中間言語に変換する.CPUが異なってもこの中間言語は,同一とする.
このようにすることにより,インタプリタより高速に動作させることができる.また,高
級言語のようにCPU毎に機械語を用意する必要もない.プログラミング言語Javaがこの方
式で実行されることが多い.
ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年12月14日