目次(まとめ)
◾️ コンパイラは、ソースコードをまとめて機械語に翻訳する
◾️ インタプリタは、ソースコードの命令ごとに機械語に翻訳する
◾️ PythonやRubyは、インタプリタ方式のスクリプト言語
◾️ 参考文献
こんにちは、みっちゃんです。
プログラミング言語にはいろいろな種類がありますが、プログラミング言語はプログラム(ソースコード)を書くために使います。
プログラムに書かれた「命令の集まり」をコンピュータ(機械)に理解させるために、「機械語」への翻訳が必要です。
今回の記事では「書いたプログラムはどうやって機械に認識させているの?」「"コンパイルする" ってよく聞くけど何をしているの?」という方向けに、ソースコードから機械語への翻訳について解説します。
コンパイラは、ソースコードをまとめて機械語に翻訳する
プログラミング言語を用いて記述したソースコードには、さまざまな命令文が含まれています。
例えば「***ファイルを入力する」「***変数には***を保存」「***関数を使う」などです。
コンパイラは、このような複数の命令が書かれたソースコードを、まとめて機械語に翻訳します。
この過程を、コンパイル(compile)と呼びます。
コンパイラ方式は、C言語やJavaなどの言語で使われています。
まとめて機械語に翻訳する仕組みになっているので、翻訳の段階で時間がかかるという欠点はありますが、一旦翻訳され機械語のプログラムが得られれば、その処理速度は早いという利点があります。
プログラムの実行手順としては、まずソースコードを作成、次にコンパイルを実行、最後にコンパイルによって作成された機械語プログラム(実行ファイル)を実行する、という流れになります。
もしソースコードに何か間違いがあれば、コンパイルの段階でエラーが出るので、そのエラー文を参考に、ソースコードを修正していきます。
インタプリタは、ソースコードの命令ごとに機械語に翻訳する
コンパイラと異なり、インタプリタは、ソースコードの命令ごとに機械語に翻訳します。
インタプリタ方式では、命令が機械語に翻訳されるたびにその実行を行います。
この利点としては、命令ごとに結果を確認できること、エラーがあればその時点で修正できること、が挙げられますが、一方で、プログラム全体の処理速度という意味では、コンパイル方式に比べて劣ってしまいます。
PythonやRubyは、インタプリタ方式のスクリプト言語
手軽に使いやすいという意味で、インタプリタ方式の言語は人気があるように思います。
特に、PythonやRubyなどのスクリプト言語は、その中身がヒトにわかりやすいということもあり、プログラミング初心者にとっても敷居が低い言語だと思います。
これらのインタプリタ方式をとる言語は、コンパイルが必要なく、命令文に対する回答を簡単に得られるので、気軽に使ってみてください。
参考文献
きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社