PHP/Elixirエンジニアのブログ

有益なアウトプットを心がけます。

【言語設計】機会語/マシン語ってなに?

いつもご覧いただきありがとうございます。


本日は「機会語/マシン語」について




初学者なりに学習した内容を書いていきます。




機会語/マシン語とは

機会語/マシン語(Machine code/machine language)は同じ意味です。


かんたんに要約するとコンピュータの世界で使われている


「0」と「1」を組み合わされて表現されている言葉です。


イメージ: 0110011



コンピュータのプロセッサが直接解釈実行可能な一連の命令群のデータそのものを


コンピュータ・プログラミング言語とみなしたものです。



  プロセッサとは

 プロセッサ (processor) は、コンピュータシステムの中で、ソフトウェアプログラムに記述された命令セット(データの転送、計算、加工、制御、管理など)を

実行する(=プロセス)ためのハードウェアのこと。プロセッシングユニット (processing unit)、処理装置(しょりそうち)ともいう。



「プロセス(process)」+「~する人・物(接尾辞:or)」


→「プロセッサ(processor)」です。



 プロセッサは処理装置の総称で、演算装置、命令や情報を格納するレジスタ、周辺回路などから構成される。

内蔵されるある程度の規模の記憶装置までを含めることもある。プロセッサの中のシステムの中心的な処理を担うものを

「CPU(Central Processing Unit)」、集積回路に実装したものをマイクロプロセッサと呼ぶ。



 機械語とプロセッサの関係

 プロセッサは機械語で書かれたプログラムにしたがって処理を行っている。機械語でのプログラミングには、

機械語とほぼ1対1に対応するニーモニックを用いたアセンブリ言語を使うのが一般的である。

アセンブリ言語で書かれたプログラムを機械語に変換することをアセンブル(する)と言い、その処理系をアセンブラと言う。

アセンブラによるアセンブルに対し、人力によるアセンブルをハンドアセンブルという。



現在において機械語を使用する機会

 今日では、機械語を使わずとも十分なほどコンピュータは高性能になり、またコンパイラの研究も進んでよくできたコンパイラで

あれば場合によっては人より高性能なコードを生成するようになった。


 機械語を直接扱うのは、ユーティリティやライブラリが(まだ)無い新しいプロセッサの場合や対応していない新機能などを使う場合、

プログラミング言語には馴染まない特殊な命令を扱う場合、プロセッサのバグに当たった(等の可能性が疑われる)場合、

何らかの理由でコアダンプを直接解析しなければならない場合、などがある。




「機会語/マシン語」についてかんたんにまとめさせていただきました。


最後までご覧いただきありがとうございました。