機械語
機械語またはマシンコードは、二進数の数字(1と0)で構成される低水準言語です。高水準言語であるSwiftやC++などは、コンピューター上でコードを実行する前に、コンパイルして機械語に変換する必要があります。
コンピューターはデジタル機器なので、二進データしか認識できません。すべてのプログラム、動画、画像、テキストの文字は、二進数で表されます。この二進数のデータ、つまりマシンコードは、CPUによって入力として処理されます。その結果の出力は、オペレーティングシステムまたはアプリケーションに送られ、データが画面に表示されます。たとえば、文字「A」のASCII値は、マシンコードでは01000001ですが、このデータは画面上では「A」と表示されます。画像には、各ピクセルの色を決める二進数の値が数千、場合によっては数百万含まれることがあります。
マシンコードは1と0で構成されますが、異なるプロセッサアーキテクチャでは異なるマシンコードが使われます。たとえば、RISCアーキテクチャを持つPowerPCプロセッサには、CISCアーキテクチャを持つIntel x86プロセッサとは異なるコードが必要です。コンパイラーは、プログラムを正しく実行できるように、正しいプロセッサアーキテクチャ向けに高水準のソースコードをコンパイルする必要があります。
機械語とアセンブリ言語の違い
機械語とアセンブリ言語はどちらも低水準言語ですが、コンピューター言語の階層では、マシンコードはアセンブリ言語より下位にあります。アセンブリ言語にはmov、add、subなどの人間が読める命令が含まれますが、機械語には単語も文字も含まれません。一部の開発者は、プログラムを最適化するためにアセンブリ言語を手作業で記述しますが、マシンコードは記述しません。機械語を扱う必要があるのは、ソフトウェアコンパイラーを作成する開発者だけです。
NOTE: 機械語は技術的には二進データで構成されますが、16進数の値で表すこともできます。たとえば、二進数では01011010である文字「Z」は、16進コードでは5Aと表示できます。[/n]
知識をテストする