ネイティブコード

ネイティブコード(native code)とは、人間が記述したソースコードコンピュータアーキテクチャに合わせてバイナリコードに変換したものをいう。

ネイティブは原住民という意味を持つ言葉である。そのことから本来の機能や仕様などといった意味合いで利用される。

ネイティブコードは、人間に理解できるソースコードをコンパイラを使ってコンパイルした機械語のことをいう。つまり、ネイティブコードは機械語であり、バイナリコードであり、マシン語であり、オブジェクトコードでもある。色々な表現が使われるが、基本的にはどれも同じ意味。

バイナリは、二進数のことで「0」と「1」の世界。よく「ON」と「OFF」という表現を使うが、これはコンピュータがオンとオフしか理解しないため。

ネイティブコードはコンパイルされたものであるため、基本的に個々のプロセッサに依存する。つまり、異なるプラットフォーム間では動作しない。他のプラットフォームで用いる場合は、再コンパイルによる移植をしなければならない。また、エミュレートが不要であるため、対象コンピュータのアーキテクチャが本来備える処理速度で動作する。

コンパイルは高水準言語で行われる変換のことだが、これは低水準言語でも同じ。どちらも変換されたらネイティブコードという。例えば、アセンブリは低水準言語である。この場合はアセンブラを使ってアセンブルをする。どちらの場合も変換されて出来上がったデータは、ネイティブコードである。そして、これらのネイティブコードは、異なるプロセッサ間で動作しない。動作させるためには、再コンパイルをして移植をしなければならない。

尚、ネイティブコードに対して変換する前のものは、ソースコードと呼ばれている。

ネイティブコードの意味を簡潔に説明すると

コンピュータに理解できる二進数からなる機械語のこと。