auの日記

プログラミング初心者の日記。(auはハンドルネームです)

プログラミングで使われる中間言語について調べてみた

auです。

中間言語という用語について調べてみました。

中間言語とは

中間言語(Intermediate language)とは、高級言語機械語の間にある言語のことです。
コンパイラソースコードから機械語を作る場合、コンパイラが翻訳しやすいようにするためや、最適化を行うために中間言語をに変換してから機械語にする場合が多いらしいです。

Javaでは、OSやハードウェアごとのJavaプラットフォームからコンパイルをしてバイトコードという中間言語に翻訳します。
このバイトコードは、全てのJavaプラットフォームで動作するようになっています。便利。
このバイトコードJITコンパイラで実行することで動かすことができるわけです。
ここでの中間言語は「バイトコード」のことを指しています。

C言語でのコンパイルは、ソースコード→オブジェクトコード(中間言語)→機械語という風になっています。
オブジェクトファイルとも呼ばれるそうです。
hogehoge.oというファイルがオブジェクトファイルとして使いますね。そして、このオブジェクトファイルをリンカで適切に処理することで、実行ファイルを作ることができます。

中間言語は、機械語にするまでに必要な処理の一つということが分かりました。