コンパイルすることで、人の理解できるプログラミング言語が機械語に翻訳されて、実行できるようになります。コンパイルすることを前提にしたプログラミング言語をコンパイラ言語といいます。
コンパイラ言語とは別にインタープリター言語というのがあります。これもプログラムを機械語に翻訳する一つの方式です。インタープリターとは「通訳」のことです。
パソコンが使われ始めた1970〜1980年頃、まだMS-DOS(PC-DOS)が使われる以前、当時のパソコンはBASIC言語のプログラムをロードして動いていました。また、一部に機械語のプログラムも動いていました。
BASICとは「Beginner’s All-purpose Symbolic Instruction Code」(「初心者向け汎用記号命令コード」)の頭文字をとってできた呼称です。初心者向けのプログラミング言語ということで、広く使われるようになりました。
かの有名なビル・ゲイツ氏は、BASICを初期のパソコン向けに移植するということをやっています。それがゲイツ氏の技術者としての功績です。その後、彼は技術者というより実業家に転身しますが。
ちょっと面白い記事を見つけたので、紹介しておきます。筆者はちょうどわたしと同世代の方ですね。
「デファクト・スタンダードの真実」
http://www.incunabula.co.jp/dtp-s/defect_standard/1.html
わたしが最初に使ったパソコンは、NEC PC9801Fというパソコンです。これには、「N88日本語DISK BASIC」という処理系があって、フロッピィディスクで提供されていました。
PC9801Fを使うためには、BASICでプログラムを書け・・・ということなのです。覚えましたよ、BASIC言語・・・(^o^)
実はこのBASICは「インタープリター言語」です。
インタープリター言語は「コンパイル」しません。プログラムを書いたら、動かす。
「RUN(走れ)」
と命令します。すると、BASIC言語の処理系は、BASICで書かれたプログラムを
「1行ずつ翻訳して動作します」
コンパイラとの違いは、翻訳と実行がセットになっていて、1行単位だということです。
1行翻訳し、エラーがなければ即実行。次の行を翻訳し、エラーがなければ即実行。
というのを繰り返します。メモリ上に必要な変数域等を保持していますので、一連の処理として実行ができます。
もし、エラー(バグ)があったら?・・・そこで止まります。したがってインタープリター言語であるBASICは、エラーがある手前までは実行してくれます。
これはこれで、便利なんです。プログラムのエラーが出てくるまでは実行してくれるから、そこまでの結果は分かる。後々分かることですが、「デバッグ」作業をしているような感覚でしょうか。いや、「デバッグ作業」というのが「インタープリター言語の実行に似ている」というのが正しいのでしょうね。
プログラムを実行するのに、
- コンパイル
- リンク
- 実行
という手順がある、と説明しましたが、インタープリター(言語)方式というのがあるんだ、と覚えて下さい。インタープリターだと、実行手順というイメージでなくて、(1行以上)プログラムを書いたらいつでも実行。エラーが出てくるまでは翻訳、実行を繰り返す・・・。
コンパイルとは違うのだということです。
(続きます)
コメント