コンパイラの諸形態


コンパイラ型の開発環境の場合、コンパイラアプリケーション自体は、何かファイルを生成するだけで終わり、というのが多い。プログラムをその場で実行してくれる開発環境は、インタラクティブな開発環境、などと言われたりするが、そういうのはインタープリタ型である。

ただ、インタープリタでも、まず機械命令に変換して直後に実行すれば、コンパイラ方式のインタープリタ、というか、インタラクティブなコンパイラ型開発環境になるわけである。そのような方式はJIT(ジャスト インタイム)コンパイラ方式などといわれて、インタープリタ方式の有名なプログラミング言語環境には、最近は大抵ついているようである。現行の商用のパソコン上でのforth環境は、全部この方式になっているらしい。Mopsは68kMac上で動いていた初めからそうである(1988年頃開発されたとか)。インタープリタ環境で、一旦、機械命令系列にコンパイルしてから実行する環境が増えてきたのは、その方が実行速度が速くなるからである。いや、必ず速いというわけではない。同じパターン(つまり、関数)を何度も繰り返し実行する予定なら、ということである。というのも、コンパイルする際にも、インタープリトする場合にも、コードの構文を解析しなければならないところは同じであり、インタープリタなら、結果をそのまま実行すればよいだけだが、コンパイラだと、結果を最適化したり、機械命令系列に変換したりしなければならないわけで、単発ならコンパイラの方が遅い可能性は十分にある。
最終更新:2013年12月18日 20:26