プログラミング言語年表
チャールズ・バベッジが計画した「機械式コンピュータ」と言える装置である解析機関についての文章をイタリアの数学者で政治家ルイジ・メナブレア(英語版、イタリア語版)が執筆し、1842年から1843年の9ヶ月間にエイダ・ラブレスがそれを翻訳した。この記事の中で彼女はこの機械でベルヌーイ数を計算する完全なプログラムを掲載した。これは世界初のコンピュータプログラムであると言われている。ただし、これは機械(コンピュータ)に対する命令そのもの(機械語)で記述されたプログラムであり、「プログラミング言語」としては広義のそれとなる。
1801年にジャカード織機が発明された。パンチカードを利用するもので、布に織り込む模様に対応した縦糸(経)の上げ下げの対応がそのまま厚紙の穴になったもので、コンピュータプログラムと見るのは無理があるが「プログラマブルな装置」の一種である。オルゴールや自動オルガンなど他にもいろいろある。後に、列車の中で車掌が切符に穴を開け乗客についての情報を穴の位置で記録するのを見たハーマン・ホレリスは、このパンチカードを情報の記録に使うことを発想し、1890年の国勢調査にパンチカードを利用する機械(タビュレーティングマシン)を提供した。
以上のような具体的な数値の計算ばかりではなく、数学の中でもより抽象的な分野で、記号の操作というもっと広い範囲で「計算」というものを形式的に表現する手法が1900年前後から研究されていた。これは数学基礎論や数理論理学と関係する。
アロンゾ・チャーチはラムダ計算を提案した。チューリングマシンは有限オートマトンと無限の長さがあるテープ(理論で扱う上では)を使う。これらのような、計算を形式化したものを計算モデルと言う。理論的にはラムダ計算もチューリングマシンも他の多くの計算モデルも、何が「計算可能」であるかという点では同等の能力を持つことが証明されていて、これらの計算モデルで計算可能であるということを、「計算可能」ということの定義としよう、という定立がチャーチ=チューリングのテーゼである。
チューリングマシンには実際のコンピュータ、特に古典的ないわゆるノイマン型に似たところがあり、一方のラムダ計算は現代的な高水準プログラミング言語のHaskellにおいてその基礎のひとつになっている。ある意味でコンピュータ科学の端と端が、数学の基礎を通してつながっているという興味深い関連とも言える。
プログラミング言語年表(プログラミングげんごねんぴょう)は、コンピュータプログラミング言語に関する年表である。個々の言語の詳細については、個別の記事にゆずる。