システムプログラミング言語
システムプログラミング言語とは、システムプログラミングでよく使用されるプログラミング言語のことである。このような言語は、システムソフトウェアを書くために設計されており、アプリケーションソフトウェアを書く場合とは異なる設計アプローチが求められる。
システムソフトウェアとは、コンピューターのハードウェアの操作・制御のために設計されたコンピューターのソフトウェアであり、アプリケーションソフトウェアを実行するためのプラットフォームを提供する。システムソフトウェアのカテゴリーとしては、オペレーティングシステム、ユーティリティソフトウェア、デバイスドライバ、コンパイラ、リンカなどがある。
中レベル言語は「高レベル言語のような多くの構文と機能を持つが、言語内で(アセンブリ言語と同様に)機械の機能への直接アクセスも提供するもの」である。最初期の中レベル言語は1960年頃にBurroughsメインフレームで使用されたESPOLである。次に現れたのがNiklaus WirthのPL360であった(もともとBurroughsシステム上でクロスコンパイラとして実装されたものである)。PL360は、ALGOL 60の一般的な文法を持っていたが、各ステートメントはCPUレジスタやメモリを直接操作するものだった。その他には、MOL-360やPL/Sがある。
一例として、よくあるPL360のR9 := R8 and R7 shll 8 or R6というステートメントを挙げる。このステートメントの意味は、「レジスタ8とレジスタ7をandし、その結果を8ビット左シフトした後、レジスタ6の中身とorし、さらにその結果をレジスタ9に格納せよ」という意味になる。