プログラムを実行するための方法「インタプリタ」と「コンパイラ」について
プログラムを作成した後、コンピュータがその内容を理解するためにも「変換」処理を行う必要があります。その実行方法には「インタプリタ」と「コンパイラ」があり、コンピュータ上でプログラムを走らせるための変換方式として知られています。プログラムを機械で処理するために最適な信号に変換する、インタプリタとコンパイラについてご紹介します。
Contents [hide]
プログラムをすぐに実行できるインタプリタとは?
インタプリタとは、プログラムのコードを機械語に変換してコンピュータに指示する方式です。コードを作成した直後から実行できるメリットがありますが、プログラムを実行するたびに変換するため、多大な時間を必要とします。プログラムを1行ごとに実行するため「遅い」という印象のある方式ですが、現在ではコンピュータの性能が向上している関係もあり、その作業の簡略性によりインタプリタ方式に特化した言語を愛用する方も増えています。
完成したプログラムを一括変換するコンパイラとは?
コンパイラはプログラムのコードを機械語に一括変換して、コンピュータに指示する方式です。機械語の変換は事前に行われるため、一旦変換されたものは高速で処理できるメリットがあります。しかし、インタプリタ方式と違い、プログラムはほぼ完成の状態で実行する必要があるため、すぐに不具合を確認できないのが難点です。実行後の修正段階は「デバッグ」と呼ばれており、長文のプログラムの中から不具合を探す必要があるため、プログラマとしての経験が試される作業でもあります。一般的に普及しているアプリケーションは、このコンパイラ方式で作成されたものがほとんどであるため、プログラムの基礎を学ぶには欠かせない方式となります。
各変換方式に代表されるプログラミング言語
インタプリタはコード作成後すぐに実行できるメリットがあり、代表的なプログラミング言語には「BASIC」「Perl」「PHP」などがあります。コンパイラでは一括変換を行う「コンパイル」という作業を必要としますが、このコンパイルをすることにより高速処理が可能となり、代表的なプログラミング言語には「C」「C++」「Objective-C」などがあります。これらをインタプリタ言語、コンパイラ言語と二分化する傾向にありますが、あくまでコンピュータ上で走らせるための「方法」であるため、インタプリタ方式で変換するC言語も存在します。上記に述べたものは各方式を代表する言語として覚えておきましょう。
両方の変換方式を併せ持つJava言語
Javaはインタプリタとコンパイラの両方の実行が可能です。Javaはあらゆるプラットフォームに対応できる言語を目指しているため、仮想マシン上で中間的なソースコードである「バイコード」に変換するという方法を選んでいます。Javaはインタプリタ型の言語として有名ですが、このバイコードに変換することにより、コンパイル方式と同等の高速化やファイルサイズの低減などが可能となります。Javaの実行環境である仮想マシンには「Java VM」があり、APIやいくつかのツールとセットでリリースされています。
プログラムの実行に必要なインタプリタとコンパイラ
プログラムを実行する際は、まず機械語に変換する必要があることを覚えておきましょう。そして、作りながらデバッグを行うインタプリタ方式か、完成後に不具合を修正するコンパイラ方式かで開発状況も違ってきます。プログラム初心者であれば、2つの変換方式の違いを覚えておきましょう。