解析機関
チャールズ・バベッジは1830年代に解析機関を設計した。これは、メモリ(「記憶装置」)、処理ユニット(「演算装置」)、パンチカードによる入力、条件分岐を備えた機械式コンピュータである。コストや製造上の制限により完成することはなかったが、その設計は論理的に完結していた。ラブレスの注釈は、それがどのように機能するのかを最も明確に説明している資料である。
ベルヌーイ数のアルゴリズム
注釈Gには、解析機関を使用してベルヌーイ数を計算するための演算テーブル(現代の用語で言えば本質的にアルゴリズム)が含まれている。これにはループ、条件分岐、複数の変数の同時管理が含まれている。これはバベッジが文書化したどの設計よりも複雑であり、歴史家は一般的に、この設計をバベッジよりもラブレスの功績とみなしている。
計算を超えたビジョン
さらに重要なことは、ラブレスがこの機関を単なる計算機ではなく、シンボルを操作する機械であると理解していたことである。数字だけでなく、シンボルとして表現できるあらゆる対象を操作できたのである。「このエンジンは、どんなに複雑で広範な精巧で科学的な楽曲でも作曲できる可能性がある」と彼女は記した。計算とは本来算術に関するものではないというこの洞察は、チャーチ=チューリングの計算可能性理論を100年先取りしていた。
彼女の役割をめぐる議論
一部の歴史家は、ラブレスの貢献は主に編集的なものであり、重要なアイデアはバベッジによるものだと主張してきた。二人の間の書簡は、バベッジの修正や提案を伴う広範な協力関係を示している。しかし、注釈Gにあるベルヌーイ数のアルゴリズムと計算の本質に関する哲学的洞察は、明らかにラブレス自身の貢献である。
よくある質問
エイダ・ラブレスは実際に何をプログラミングしたのか?
ラブレスは、バベッジの解析機関を用いてベルヌーイ数を計算するためのアルゴリズムを注釈G(1843年)に記述しており、これが最初のコンピュータプログラムと考えられている。このアルゴリズムにはループや条件分岐が含まれる。また彼女は、コンピュータは数字だけでなくあらゆるシンボルを操作できるという原則を明確にしており、現代の計算理論を先取りしていた。
エイダ・ラブレスは本当に最初のプログラマーか?
その主張は議論の的となっている。ラブレスの注釈G(1843年)には、機械による実行を目的とした最初の文書化されたアルゴリズムが含まれている。一部の歴史家は、そのアルゴリズムにはバベッジが多大に貢献しており、現代の一般的な記述ではラブレスの役割が誇張されていると主張している。しかし、算術を超えた計算という哲学的ビジョンは、間違いなくラブレス自身の洞察である。
ベルヌーイ数とは何か?
ベルヌーイ数は、整数べきの和やリーマンゼータ関数、三角関数のテイラー級数などの公式に現れる、数論と深く関わった有理数の数列である。最初のいくつかは B0=1, B1=-1/2, B2=1/6, B4=-1/30 となる。これらを計算するためのラブレスのアルゴリズムは、機械実行のために設計された最初のアルゴリズムであった。