現在のコンピュータは主として,ワープロ,表計算などに利用されている。 これらは,応用ソフトウェア(application software)を起動することにより,実行がなされている。 もう少し,コンピュータに堪能な人は, CとかJavaとかいった高水準プログラム言語(high level program language)と呼ばれる文章を プログラミング(programming)することにより, 自分や他人に必要とされるプログラム(program)を作成し, それをコンパイルして応用ソフトウェアを作成し,それを実行しているかもしれない。 コンパイルという用語を知らない人は,すぐ後に説明するので,それを読んで欲しい。 ワープロ,表計算などといった応用ソフトウェアも, 実はソフトウェアメーカーが高水準プログラム言語を用いてプログラミングし, コンパイルしたものを動作させているのである。
こうした応用ソフトウェアと呼ばれるものは,すべて, 機械語(machine language)と呼ばれるコンピュータの動作を直接制御する命令(instruction)により 構成されている。 一見意味のない0と1のビット列に見えるので2進プログラム(binary program)とも呼ばれる。 CとかJavaを高水準プログラム言語と言ったが, ほとんど機械語そのものに対応したアセンブラ言語(assembler language)と呼ばれるものがあり, それとの対比で高水準と呼ぶのである。 高水準プログラム言語で書かれたプログラムもその内容を解釈され, 機械語に変換される。 この変換を翻訳,つまりコンパイル(compile)と言う。 言語によっては翻訳をしないで,実行時に行単位で機械語に変換され, 実行されるものもある。 こうした言語を通訳,つまりインタープリタ(interpreter)と呼ぶ。 いずれにせよ,実行時には機械語になっているのである。