マイクロコンピュータのプログラム命令は,メモリから命令レジスタに読み込まれた後,命令デコーダで解読されて制御回路へ伝達される。
このようなマイクロコンピュータが直接理解できるプログラム命令は,2 進数で記述された機械語である。機械語を扱うときには,2 進数 4 桁分を表す 16 進数を用いることが多い。
一般的に機械語命令は,基本動作を表す命令コードと命令の対象となる数値やデータのアドレスなどを表現するオペランド*1によって構成される。
例えば,相対アドレスを指定する場合は,プログラムカウンタの値にオペランドによって指定した値を加えて,目的のアドレスを算出する。
停止命令や無操作命令など,一部の命令ではオペランドの無い命令もある。
アセンブラ*2は,機械語とほぼ 1 対 1 に対応したニモニックを用いる言語で,機械語よりもプログラムの内容が分かりやすい。
人間が理解しやすいように記述した原始プログラムを一括して機械語などの低水準言語に変換する言語を総称して,コンパイラ*3言語という。
この変換作業によって原始プログラムは目的プログラムとなり,さらに別の目的プログラムやライブラリと結合させて実行可能プログラムとなる。
実行時に原始プログラムを一文ずつ解釈し,逐次実行していく言語としてインタプリタ言語がある。
この言語は,コンパイラ言語に対してプログラム変更手順が容易であるが,実行速度は遅くなる。
低水準言語(low-level programming language)
プログラミング言語のうち、コンピュータが直接解釈・実行できる機械語や、機械語に近い言語の総称。
「低級」「低水準」とは劣った言語であることを意味するのではなく、ハードウェアに近いことを意味する。
機械語(machine language)
機械語とは、コンピュータのマイクロプロセッサ(CPU/MPU)が直接解釈・実行できる命令コードの体系。0と1を並べたビット列として表され、人間が直に読み書きしやすい形式ではない。
アセンブリ言語(assembly language)
アセンブリ言語とは、プログラミング言語の類型の一つで、コンピュータのCPU(MPU/マイクロプロセッサ)が直接解釈・実行できる機械語(マシン語)と正確に対応する命令語で構成された言語。
高水準言語(high-level programming language)
高級言語とは、プログラミング言語の分類の一つで、抽象的な語彙や記法、構文などを用いて処理を記述することができる言語の総称。
コンパイラ言語(compiler language)
コンパイラ言語とは、高水準プログラミング言語の分類の一つで、公式の、あるいは主要な実行環境がコンパイラ(compiler)であるような言語のこと。
インタプリタ言語(interpretive language)
インタプリタ言語とは、高水準プログラミング言語の分類の一つで、公式の、あるいは主要な実行環境がインタプリタ(interpreter)であるような言語のこと。
参考文献
- 令和元年 第二種 電気主任技術者 一次試験 機械 問8
更新履歴
- 2022年1月22日 新規作成
- 2022年1月25日 言語の説明を追加
*1:オペランド(operand)とは,数式を構成する要素のうち,演算の対象となる値や変数,定数のこと。プログラミングの分野ではこれに加えて,プログラム中の個々の命令・処理の対象となるデータや,データの所在情報などのこともオペランドという。
*2:アセンブラとは,コンピュータ,マイクロコントローラ,その他のプログラム可能な機器を動作させるための機械語を人間にわかりやすい形で記述する代表的な低水準言語である。
*3:コンパイラ(compiler)とは,コンピュータ・プログラミング言語の処理系の一種で,高水準言語によるソースコードから,機械語あるいは基のプログラムよりも低い水準のコードに変換(コンパイル)するプログラムである。