低水準言語
低水準言語(ていすいじゅんげんご、low-level programming language、低級言語とも)は、コンピュータ用のプログラミング言語のうち、コンピューターが命令を直接、もしくは直接に近い形で解釈し実行できる言語の総称。一般的には機械語やアセンブリ言語のことを指す[1]。対義語は「高水準言語」である。低水準言語は、命令セットアーキテクチャ(プロセッサの構造に近いコマンドや関数)からの抽象化機能をほとんど、もしくは全く提供しない[2]。実行環境のメモリの容量が少ないか、プロセッサの能力を最大限に引き出す必要がある場合に用いられる事が多い[1]。
低水準とは、システムの階層構造を考えた場合に、ハードウェア寄りに位置する(低レイヤ、低水準)という意味である。コンパイラやインタプリタを使用せずに機械語に変換することができ、プロセッサ上で直接実行することができる。アセンブリ言語においては、アセンブラと呼ばれる単純なプログラムを使用して機械語への変換を行う[3][4]。低水準言語で記述されたプログラムは少ないメモリ使用量で高速に動作し、同じプログラムを高水準言語で記述したものよりも高い効率で動作する。低水準言語はシンプルな言語だが、多数の技術的な詳細をプログラマが覚えておく必要があるため扱いが難しいとされている。それに対し、高水準言語はコンピューターアーキテクチャにおける実行セマンティクスをプログラムから分離しているため、開発が簡略化できる[2]。
次のような特徴がある。
- コンピュータにとってわかりやすい(機械語とのセマンティックギャップが少ない)
- 特定プラットフォーム(ハードウェア、ないしプロセッサ)に特有の処理が書ける[1]
- メモリ操作、IO制御等CPUレベルの操作ができる(専ら、特権モード(CPUモードの記事を参照)で動かすようなプログラムを書くのに使われる)
脚注
[編集]- ^ a b c “低水準言語とは - IT用語辞典”. IT用語辞典 e-Words. 2024年3月20日閲覧。
- ^ a b “3.1: Structure of low-level programs” (英語). Workforce LibreTexts (2021年3月5日). 2023年4月3日閲覧。
- ^ “Generation of Programming Languages” (英語). GeeksforGeeks (2017年10月22日). 2024年4月27日閲覧。
- ^ “What is a Generation Languages?” (英語). www.computerhope.com. 2024年4月27日閲覧。