目次(まとめ)

◾️ コンパイラは、ソースコードをまとめて機械語に翻訳する

◾️ インタプリタは、ソースコードの命令ごとに機械語に翻訳する

◾️ PythonやRubyは、インタプリタ方式のスクリプト言語

◾️ 参考文献

 

こんにちは、みっちゃんです。

 

プログラミング言語にはいろいろな種類がありますが、プログラミング言語はプログラム(ソースコード)を書くために使います。

 

プログラムに書かれた「命令の集まり」をコンピュータ(機械)に理解させるために、「機械語」への翻訳が必要です。

 

今回の記事では「書いたプログラムはどうやって機械に認識させているの?」「"コンパイルする" ってよく聞くけど何をしているの?」という方向けに、ソースコードから機械語への翻訳について解説します。

コンパイラは、ソースコードをまとめて機械語に翻訳する

プログラミング言語を用いて記述したソースコードには、さまざまな命令文が含まれています。

例えば「***ファイルを入力する」「***変数には***を保存」「***関数を使う」などです。

コンパイラは、このような複数の命令が書かれたソースコードを、まとめて機械語に翻訳します。

この過程を、コンパイル(compile)と呼びます。

コンパイラ方式は、C言語やJavaなどの言語で使われています。

まとめて機械語に翻訳する仕組みになっているので、翻訳の段階で時間がかかるという欠点はありますが、一旦翻訳され機械語のプログラムが得られれば、その処理速度は早いという利点があります。

プログラムの実行手順としては、まずソースコードを作成、次にコンパイルを実行、最後にコンパイルによって作成された機械語プログラム(実行ファイル)を実行する、という流れになります。

もしソースコードに何か間違いがあれば、コンパイルの段階でエラーが出るので、そのエラー文を参考に、ソースコードを修正していきます。

インタプリタは、ソースコードの命令ごとに機械語に翻訳する

コンパイラと異なり、インタプリタは、ソースコードの命令ごとに機械語に翻訳します。

インタプリタ方式では、命令が機械語に翻訳されるたびにその実行を行います。

この利点としては、命令ごとに結果を確認できること、エラーがあればその時点で修正できること、が挙げられますが、一方で、プログラム全体の処理速度という意味では、コンパイル方式に比べて劣ってしまいます。

PythonやRubyは、インタプリタ方式のスクリプト言語

手軽に使いやすいという意味で、インタプリタ方式の言語は人気があるように思います。

特に、PythonやRubyなどのスクリプト言語は、その中身がヒトにわかりやすいということもあり、プログラミング初心者にとっても敷居が低い言語だと思います。

これらのインタプリタ方式をとる言語は、コンパイルが必要なく、命令文に対する回答を簡単に得られるので、気軽に使ってみてください。

参考文献

きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社