ネイティブコード 【native code】

概要

ネイティブコード(native code)とは、コンピュータCPU(MPU/マイクロプロセッサ)が理解できる形式で記述されたコンピュータプログラムプロセッサに対する命令の仕様を定義した機械語(マシン語)で書かれており、人間が直接読み書きすることは困難である。

コンピュータではすべてのデータ2進法の0と1の組み合わせであるビットで表すが、マイクロプロセッサプログラムコードとしてどのようなビットを与えるとどのように動作するかが設計・仕様で決まっており、その命令の体系を機械語という。

プロセッサを意図したとおりに動作させるには、機械語の命令列で構成されるコンピュータプログラムを作成し、これを端から順に読み込ませて実行させる。このプロセッサに直に与えて解釈・実行させられる形式のプログラムをネイティブコードという。

機械語を構成する各命令語は「10001000」といったビットで定義され、仕様書などでは16進数の数値に置き換えて記されるが、これ自体は通し番号のようなもので人間にとっての意味や規則性などは存在しないため、これを丸暗記してネイティブコードそのものを読み書きするのは簡単にできることではない。

このため、通常は人間にとって理解しやすい命令語などを用いて定義されたプログラミング言語を用いてソースコードsource code)を記述し、これをコンパイラアセンブラインタプリタなどのソフトウェアによる自動処理でネイティブコードへ変換する。

仮想マシン向けコード

ネイティブコードのことをオブジェクトコードobject code)あるいはバイナリコードbinary code)と呼ぶことがあるが、これらはネイティブコードの他に仮想マシン向けの実行可能コードであるバイトコードbyte code)を指すことがある。

仮想マシンは物理的なコンピュータの上にソフトウェアとして実装された仮想的コンピュータで、独立した固有の仮想的プロセッサ機械語の体系を持つ。

仮想マシンで動作するソフトウェアソースコードから仮想プロセッサ向けのバイトコードプログラムに変換されて配布される。これを実行時仮想マシンが解釈して物理プロセッサ向けのネイティブコードに変換して実行する。

このような段階を踏むことで、プロセッサの仕様の違いに依らず様々な機種のコンピュータ上で同一のプログラム実行することができるようになる。この仕組みを用いる環境としてJava仮想マシンJVM)や.NET Frameworkなどが有名である。

(2019.3.19更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる