Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
34
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

インタプリタ言語とコンパイラ言語

まず前提知識として

私たちは様々なプログラミング言語でコードを書いています。
C言語だったりJavaScript、Ruby、PHP色々ありますね。
しかしコンピュータは、これらの言語で書いたままの状態ではプログラムを理解できません。
必ずコンピュータが理解できる"機械語"に変換してから読み込みます。
image.png

※引用元:https://www.goethekyodai.xyz/entry/compiler-interpreter
※マシン語→機械語のことです
この"変換して実行する過程"が、インタプリタ言語とコンパイラ言語とで異なります。
今回はこのインタプリタ言語とコンパイラ言語の違いについて基本的な特徴をまとめてみました。

インタプリタ言語とコンパイラ言語の違い

一言でまとめると
インタプリタ言語は、コードを実行する際に1行ずつ機械語に翻訳していく言語です。
コンパイル言語は、まず全てのコードを機械語に翻訳してから一気に実行する言語です。

以下にそれぞれのメリットとデメリットをまとめておきます。

インタプリタ言語(JavaScriptやRuby、PHPなど)

●メリット
・プログラムをすぐに実行できる
・1行1行読み込むので、実行がうまくいかなかった時点で、すぐにデバックに取りかかれる

●デメリット
・実行速度が遅い。
→ プログラムを実行するのに一回一回機械語に翻訳するので、その分実行速度が遅くなります。その為、コンパイラ型言語より実行速度が劣リます。

コンパイラ言語(C言語、C++など)

●メリット
・実行速度が速い

●デメリット
・コンパイルするまでエラーを把握できない。
→ 1行1行機械語に翻訳するインタプリタ言語の場合は、機械語に翻訳できないエラーが発生した時点で調査し修正することができます。
しかしコンパイラ言語の場合は、全て翻訳して一気に実行するまでどこでエラーが発生したか把握できません。

さいごに

私自身、インタプリタ言語しか使ったことがないのですが、色々な場面でインタプリタ言語もコンパイラ言語も普通に言葉として出てくるので把握が必要だと感じました!
インタプリタ言語は、1行ずつ翻訳して実行するんだなー。
コンパイラ言語は、まず全て翻訳してから一気に実行するんだなー。
くらいの把握でも最初は良いかと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
34
Help us understand the problem. What are the problem?