最終更新:
【図解で比較】コンパイラ vs インタプリタ — プログラム実行方式の違いを徹底解説
プログラミング言語って、書いたコードがそのまま動くわけじゃないんだよね?
コンパイラってどういう仕組みなの?
じゃあインタプリタは?
インタプリタは「その場で1行ずつ翻訳しながら実行する」方式だよ。Python、Ruby、JavaScriptなんかがこっちだね。通訳者が話を聞きながらリアルタイムで訳していくイメージ。だから実行前にコンパイルする手間がなくて、書いたらすぐ試せるのが強みなんだ。
すぐ試せるのは便利だね!でも速度に差があったりするの?
じゃあ全部コンパイラにすればいいんじゃないの?
バイトコードって機械語とは違うの?
最近はこの境界がもっと曖昧になってきてるって聞いたけど…?
WebAssemblyっていうのもコンパイルと関係あるの?
大ありだよ。WebAssemblyはブラウザ上で高速に動く「コンパイルターゲット」なんだ。C++やRustで書いたコードをWebAssemblyにコンパイルすれば、ブラウザ内でほぼネイティブ並みの速度で動かせる。かつてWebはインタプリタ方式のJavaScriptだけだったけど、今はコンパイル方式の恩恵もWebで受けられる時代になったんだよ。