スクリプトとプログラムの違い、インタープリタとコンパイラの違い、JITエンジン

スポンサーリンク
スポンサーリンク

プログラムとは

プログラムとは、OSがそのまま実行できるよう機械語に翻訳されたバイナリベースのファイルです。簡易なプログラムとしては例えばLinuxでよく使うコマンド類(cd や ls等)です。

プログラムはBasicやC++等、色々なプログラム言語の形式でテキストベースで書かれた命令文のファイル(ソースコード)を、コンパイラと呼ばれるもので、OS環境に適応できる機械語に翻訳して作られます。

つまり、あるプログラムを作るとき、ソースコードは同じでも、OSによって異なるプログラムを作るのであれば、コンパイラは異なります。

プログラムはスクリプトと比べて事前に機械語に翻訳(コンパイル)してあるので実行速度が速いというメリットがありますが、逆に言うと、コンパイルしないと使えないので開発でのデバッグ時等は毎回コンパイルするので面倒というデメリットがあったりします。

また、プログラムはバイナリ化されているので、他者からはどのように作られているのかはパッと見では分かりません。その為、リバースエンジニアリング等によって他者がプログラムを再利用するのが難しいというメリットもあります。ただし、オープンソースと呼ばれるものは、作者が自らソースコードをオープンにしているので、このメリットを放棄する、という宣言になります

スポンサーリンク

スクリプトとは

スクリプトとは、テキストファイルベースで書かれた命令文(ソースコード)のファイルのことを言います。スクリプトはインタープリタと呼ばれるものがスクリプト言語をその場で機械語に翻訳し、その場で実行します

インタープリタを搭載しているのはOS(Linuxがシェルスクリプトを実行する、等)だったりミドルウェア(ブラウザがJavaScriptを実行する、あるいは、Webサーバが PHP や Perl を実行する等)だったりしますが、それらに応じてインタープリタは異なりますし、そのインタープリタによってスクリプト言語も異なります

例えばLinuxであれば、bash等のシェルがインタープリタとなり、シェルスクリプトを実行します。

JITエンジン

スクリプトは、プログラムと比べて手軽な分、実行速度が遅いというデメリットがあり、最近では、実行前に事前に機械が扱い易い(つまり処理速度の速い)中間コードにコンパイルしておく、実行時コンパイラ(JITエンジン: Just in Time Engine)が主流です。

JITエンジンの実装としてはJAVAやC#、VB.net、eBPF 等が有名です。

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク