低水準言語とは機械語(マシン語)や機械語に近いアセンブリ言語などのハードウェアに対して直接的な命令を記述するプログラミング言語です。今でこそJavaやC言語といった英文法で構成された人間の理解しやすい高水準言語が主流になっておりますが、コンピュータが理解しやすいという低水準言語をご存知でしょうか。この記事では低水準言語を理解するために初心者でも分かる特徴、種類、基礎知識などを簡単に解説していきます。
低水準言語とは機械語(マシン語)や機械語に近いアセンブリ言語などのハードウェアに対して直接的な命令を記述するプログラミング言語です。低水準言語はまたの名を「低級言語」と呼び、英語では「low-level programming language」と表します。この低級という言葉には「コンピュータの細かい動作まで記述する必要がある」ということを意味してます。主に産業機器の組込みソフトや周辺機器のドライバなどで利用されています。
特徴として「コンピュータにとって分かりやすい」「パフォーマンスを最大限に引き出す」などが挙げられます。対極的な言語として記述抽象度が高く人間が理解しやすいように作成された高水準言語があります。
低水準言語と高水準言語の違いを記載した表を見ていきましょう。
低水準言語 | 高水準言語 | |
対象 | ハードウェア | ソフトウェア |
難易度 | 難易度高い (機械語に近い) |
難易度低い (人間が理解しやすい) |
速度 | 高水準言語より優れる | 低水準言語に劣る |
実行方式 | アセンブラ | ・コンパイラ方式 ・インタプリタ方式 |
言語の種類 | 機械語、アセンブリ言語など | Java、C言語など |
高水準言語とはプログラミング言語の記述抽象度が高いもののことで記述者となる人間が理解しやすいように作成された言語です。高水準言語はまたの名を「高級言語」と呼びます。ここで使われる「高水準」「高級」といった言葉は階級や地位、程度や品質が高く優れていることを意味していません。機械語と呼ばれるコンピューターが理解するための命令系は0と1の羅列を組み合わせたものとなるため、人間が理解をしやすいようにするための目的として高水準言語は開発されました。
低水準言語の種類を見てきましょう。
機械語(マシン語)とはコンピュータが直接解釈し、実行できる命令コードのことです。現代のプログラミング言語のほとんどが高水準言語と呼ばれる人間が理解しやすいように作成された言語です。高水準言語では人間が書いたプログラム(ソースコード)をコンピュータが理解できる形式(機械語)に変換する作業が発生します。一方で機械語はコンピュータが直接理解できるためCPUの全ての機能を直接操作可能でありコンピュータのパフォーマンスを最大限に引き上げることができます。コードは0と1を並べたビット列と呼ばれる数字の羅列で構成されます。
アセンブリ言語とは機械語を人間に理解しやすい文字列や記号で表す低水準言語に分類されるプログラミング言語です。コンピュータが直接解釈し、実行できる命令コードの機械語に1対1で正確に対応する命令語で構成されております。具体的には機械語におけるコードは0と1を並べたビット列と呼ばれる数字の羅列で構成されますが、アセンブリ言語ではこれをアルファベットで名前を付けたもので表し人間が理解しやすいようにしております。このように人間と機械の仲介役を担う目的で使用されると考えると理解しやすいでしょう。アセンブリ言語で記述されたソースコードを機械語へ変換するソフトウェアのことをアセンブラと言います。
低水準言語である「アセンブリ言語」はアセンブラと呼ばれる変換プログラムを用いて実行します。アセンブラとはアセンブリ言語をCPUが理解できる機械語の形に変換するプログラムのことです。アセンブラで行われる命令は「ニーモニック(nemonic)」とよばれる記号で表されます。この命令が操作する記憶位置は数値番地ではなく記号番地を用いることができるため、領域の割付けなどの指定をする機能も持つことができプログラミングの作業が便利となったと言われております。
低水準言語の特徴を見ていきましょう。
低水準言語はコンピュータにとって分かりやすいという特徴があります。機械語においてはコンピュータが直接理解できるためCPUの全ての機能を直接操作可能です。またアセンブリ言語においてはコンピュータが直接解釈し、実行できる命令コードの機械語に1対1で正確に対応する命令語で構成されています。いずれもコンピュータ視点で分かりやすさを実現するために機械寄りの言語となっているのが大きな低水準言語の特徴です。
低水準言語はコンピュータのパフォーマンスを最大限に引き出すという特徴があります。機械語では「メモリ操作」「IO制御」などのCPUレベルで操作が可能です。このように機械語はコンピュータが直接理解できるためCPUの全ての機能を直接操作できるためコンピュータのパフォーマンスを最大限に引き上げることができます。
低水準言語のデメリットを見ていきましょう。
低水準言語は学習コストが高いというデメリットがあります。コンピュータが理解しやすいように設計されたプログラミング言語であることから人間が理解することは非常に難しいです。機械語を人間に理解しやすい文字列や記号で表すアセンブリ言語も高水準言語であるC言語やJavaと比べると英文法で記述できる部分が少ないため難易度が高いです。
低水準言語は機種依存が高いというデメリットがあります。そのためアプリケーションの移行がしにくいなどの課題も挙げられます。またCPUの種類に応じて記述の方法や本方が異なるなども扱うことが難しい理由の一つです。
低水準言語を理解するために初心者でも分かる特徴、種類などの基礎知識を簡単に解説させていただきました。低水準言語を一言で表すと『機械語や機械語に近いアセンブリ言語などのハードウェアに対して直接的な命令を記述するプログラミング言語』です。特徴として「コンピュータにとって分かりやすい」「パフォーマンスを最大限に引き出す」などが挙げられます。低水準言語についてこの記事に記載されている最低限の内容については理解をしておくようにしましょう。