高水準言語
高水準言語とハードウェアとの間には、大きなセマンティックギャップがある。そのギャップを埋めるのがコンパイラやインタプリタといったプログラミング言語処理系であるわけだが、これを効率化するため、過去いろいろな努力がおこなわれてきた。
ひとつめは、ハードウェアを高水準言語の側に寄せる努力である。古くは1961年のバロース B5000という例があり、LISPマシンや、近年でもメインフレームにはCOBOLの1命令(MOVEやADD等)をほぼ1つの機械語に変換できるアーキテクチャを持つものや、ARMアーキテクチャのJazelleのように中間表現を実行できる、といったものがある。(高水準言語マシン)
ふたつめは、コンパイラが生成するプログラムやインタプリタが、高性能になるようにする、という努力である。RISCは、あえてハードウェアを単純にし、コンパイラに高性能なプログラムを生成させよう、という方向であった。一方で、コンパイラが利用しやすいような複雑な命令を用意したTRONCHIPのような例もある。