コンパイラ
1940年代まで、コンピュータのプログラミングは機械語で直接行なわれていた。プログラムを指して「コード」(英語では暗号を意味する)と呼ぶのは、知らない人間には機械語は全く意味のわからない数値の羅列だからである。しかし、(人間にとって比較的理解のしやすい)十進法の数字で書かれたアドレスを内部表現の二進法に変換する、といったプログラムならばEDSAC(1940年代末に登場した、イギリスのマシン)において既に存在していた。(つまり、この段階で、アセンブラのごく一部の機能に限れば、実現していたことになる)
機械語でのプログラミングは言うに及ばず、アセンブリ言語を用いても、プログラミングというのは面倒な作業である。そういった低水準言語から、人間がより扱いやすい高水準言語が徐々に求められるようになった。また、機械の詳細が抽象化されることにより、高水準なプログラミング言語で書かれた同一のソースコードを元に、詳細仕様が異なる機械でも動くプログラムを生成できる、という利点もあった。1950年代末までに、プログラミング言語がいくつか提案され、実験的なコンパイラがいくつか開発された。
世界初のコンパイラについては、1952年にグレース・ホッパーが書いたA-0 Systemだとされることもある。だが一般的には1957年にIBMのジョン・バッカスのチームが開発したFORTRANコンパイラが世界初の完全なコンパイラであるとされている。