高水準言語

出典: フリー百科事典『ウィキペディア(Wikipedia)』
2014年2月5日 (水) 23:16時点におけるしまあじ (トーク)による版 (ごはこの記述を加筆した投稿者さんの個人的見解ではないかとおもうのですが、C言語を「(低級言語でもなければ高級言語でもなく)高級アッセンブラである!」と書いた祝一平氏.には脱帽)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

高水準言語(こうすいじゅんげんご、高級言語とも)とは、記述の抽象度が高いプログラミング言語のことである。対義語は機械語アセンブリ言語を指す「低水準言語」である。「高級言語」の対は「低級言語」である。

概要

抽象度が特に高いプログラミング言語という意味で代表的な言語としては、PrologHaskellがある。

高水準言語は、低水準言語と比べ、

  • 人間にとってわかりやすい
  • プロセッサに依存した処理を書かなくてよい
  • メモリ制御、IO制御等、低水準の操作を意識しなくてよい

といったことが特徴である。

その他

高水準言語とハードウェアとの間には、大きなセマンティックギャップがある。そのギャップを埋めるのがコンパイラインタプリタといったプログラミング言語処理系であるわけだが、これを効率化するため、過去いろいろな努力がおこなわれてきた。

ひとつめは、ハードウェアを高水準言語の側に寄せる努力である。古くは1961年のバロース B5000という例があり、LISPマシンや、近年でもメインフレームにはCOBOLの1命令(MOVEやADD等)をほぼ1つの機械語に変換できるアーキテクチャを持つものや、ARMアーキテクチャのJazelleのように中間表現を実行できる、といったものがある。

ふたつめは、コンパイラが生成するプログラムやインタプリタが、高性能になるようにする、という努力である。RISCは、あえてハードウェアを単純にし、コンパイラに高性能なプログラムを生成させよう、という方向であった。一方で、コンパイラが利用しやすいような複雑な命令を用意したTRONCHIPのような例もある。 テンプレート:Asbox