「コンパイル方式とインタプリタ方式って、どちらもプログラムを実行する方法だよね?」
応用情報技術者試験でもソフトウェア分野で頻出ですが、
- コンパイルって何?
- インタプリタとの違いは?
- どちらが速い?
- JavaやPythonはどっち?
で混乱する人がかなり多いテーマです。
この記事では、
- コンパイル方式とは?
- インタプリタ方式とは?
- 違い
- メリット・デメリット
- 試験での頻出ポイント
を分かりやすく解説します!
まず結論
コンパイル方式
「実行前にまとめて機械語へ変換する」
インタプリタ方式
「実行しながら1行ずつ変換する」
超簡単にいうと
| 方式 | 変換タイミング |
|---|---|
| コンパイル方式 | 実行前 |
| インタプリタ方式 | 実行中 |
そもそも機械語とは?
コンピュータは
機械語
しか理解できない。
そのため
人間が書くプログラム
↓
機械語
への変換が必要になる。
コンパイル方式とは?
超頻出!
仕組み
ソースコード全体を
一括で機械語へ変換する。
イメージ
ソースコード
↓
コンパイラ
↓
実行ファイル
↓
実行
特徴
重要!
実行前に変換が完了する。
メリット
実行速度が速い
変換済みだから。
エラーを事前に発見できる
デメリット
修正のたびに再コンパイル
が必要。
代表例
超頻出!
- C言語
- C++
- Go
インタプリタ方式とは?
超頻出!
仕組み
プログラムを
1行ずつ変換しながら実行する。
イメージ
ソースコード
↓
インタプリタ
↓
1行変換
↓
実行
特徴
重要!
実行と変換を同時に行う。
メリット
すぐ実行できる
開発しやすい
デメリット
実行速度が遅い
毎回変換するため。
代表例
超頻出!
- Python
- JavaScript
- Ruby
コンパイル方式とインタプリタ方式の違い
超頻出!
| 比較 | コンパイル方式 | インタプリタ方式 |
|---|---|---|
| 変換 | 一括変換 | 逐次変換 |
| 実行速度 | 速い | 遅い |
| 開発効率 | やや低い | 高い |
| エラー発見 | 実行前 | 実行時 |
| 代表言語 | C言語 | Python |
イメージで理解
コンパイル方式
料理を全部作る
↓
まとめて提供
インタプリタ方式
注文ごとに作る
↓
その場で提供
Javaはどっち?
応用情報で頻出!
実は
両方の特徴を持つ
流れ
Javaソース
↓
バイトコード
↓
JVM
↓
実行
そのため
完全なコンパイル方式でも
完全なインタプリタ方式でもない。
試験での覚え方
超重要!
Compile
先に全部変換
Interpreter
実行しながら変換
よくあるひっかけ
「インタプリタ方式は事前変換する」
→ ❌違う!
インタプリタ方式は
実行時に変換
する。
応用情報で超頻出
かなり狙われる👇
- コンパイラ
- インタプリタ
- 機械語
- Java
- JVM
- バイトコード
1分で復習!
コンパイル方式
実行前に変換
インタプリタ方式
実行時に変換
コンパイル方式
高速
インタプリタ方式
開発しやすい
超重要
Compile=まとめて変換
Interpreter=逐次変換
練習問題
問題
インタプリタ方式の特徴として最も適切なものはどれか。
ア
実行前に全体を機械語へ変換する
イ
プログラムを1行ずつ変換しながら実行する
ウ
必ず実行ファイルを生成する
エ
コンパイラを利用しないと実行できない
解答
正解:イ
解説
インタプリタ方式は、プログラムを逐次解釈(Interpret)しながら実行する方式です。
まとめ
コンパイル方式とは
「実行前にまとめて変換する」
インタプリタ方式とは
「実行しながら変換する」
超重要
- コンパイル=高速
- インタプリタ=開発しやすい
- C言語=コンパイル方式
- Python=インタプリタ方式
- Java=中間的な方式
まずは、
「コンパイル=料理を全部作ってから出す」
「インタプリタ=注文ごとに作る」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント