コンパイル型とインタプリタ・スクリプト型
例で理解する:料理に例えると
-
コンパイルは、料理のレシピを一度全部調理して、完成した料理を一気に提供するようなイメージです。
- まずは一通り全ての材料を用意して、調理が終わってから料理を出すため、準備には時間がかかりますが、完成した料理はそのまま素早く提供できるので、出された後は速く食べられます。
-
インタプリタは、レシピを1行ずつ読み上げながら、材料を切ったり炒めたりして、できたらすぐに食べさせるようなイメージです。
- 調理が進むごとにその場で食べられるので、すぐに作業が進みますが、毎回レシピを読んで行動するため、全体的に時間がかかります。
まとめ
-
コンパイルは、ソースコード全体を一度に機械語に翻訳し、実行可能なバイナリファイルを生成する方式。
- 一度コンパイルすれば、プログラムの実行は速く、コンパイル時にエラーもチェックされますが、再コンパイルが必要なため、開発サイクルは遅くなります。
-
インタプリタは、プログラムを逐次解釈して実行する方式。
- ソースコードを書いてすぐに実行できるので開発の試行錯誤がしやすいですが、毎回解釈するため、実行速度は遅くなる傾向があります。
参考
- コンパイル型 → Dart
- インタプリタ型 → Python
※ コンパイル → ビルド の実行順。
追記
トレバー・バウアー(Trevor Bauer)のYoutube、おもろい。
Trevor Bauer:YouTube