プログラミングを勉強していると、コンパイラ型言語やインタプリタ言語、といった言葉遭遇する機会があると思います。
そこで、今回はそれらの違い、メリットデメリットなどを見ていきたいと思います。
・コンパイラ型言語
コンパイラ型言語で主要な言語としてはC、C++、Fortran、Rustなどがあります。
コンパイラ型言語とは、自分が書いたプログラムをコンピューターが実行するようなファイルに修正して、それを動かすプログラミング言語のことです。
分かりづらいと思うので例を挙げていきます。
下のように、blogというフォルダの中にmanbo.cppというC++で書いたプログラムを置きます。
ただこれではコンピューターは何も実行できません。
なのでこれをこれをコンピューターが理解できるような形式にする必要があります。
このことをコンパイルと言います。
というわけでコンパイルすると以下のようになります。
manbo.cppの他にmanbo.exeというファイルがあると思います。これがコンピュータが実行するファイルになります。
コンパイラ型言語とはこのように一度自分が書いたプログラムをコンパイルして実行する言語のことを指します。
・インタプリタ型言語(スクリプト型言語)
インタプリタ型言語で主要な言語としては、Python、Ruby、PHP、JavaScriptなどがあります。
ちなみに、インタプリタ型言語とスクリプト言語は厳密には異なり、スクリプト言語はインタプリタ型言語の一部のようですが、混同することも多いようなのでここでは特に分けて考えたりしません。
気になる方は自分で調べてください。
インタプリタ言語とは、自分が書いたプログラムをその都度その都度、コンピュータが解釈しながら実行するプログラムのことです。
ちなみによくコンパイラ型言語は翻訳、インタプリタ言語は通訳、と説明されます。
・それぞれのメリットとデメリット。
なんとなくそれぞれについて説明してみましたが、それではそれぞれのメリットデメリット見ていこうと思います。
メリット | デメリット | |
---|---|---|
コンパイラ型言語 | 演算速度が速い | コードが煩雑になる |
インタプリタ型言語 | コードが簡潔 | 演算速度が遅い |
メリットとデメリットはこのような感じにまとめることができます。
演算速度を優先するのならコンパイラ型言語、コードの簡潔さを優先するのならインタプリタ型といった感じです。
ただ、インタプリタ型は演算速度が遅いと書きましたが、そこまで長くないコードなら人間の感覚的にどちらも一瞬で終わるのでインタプリタ型のデメリットは少なくなりつつあります。