ディジタル式の計算機械の初期のものとして、Charles Babbageが1849年ころに設計したDifference Engineがある。
多項式
をマクローリン展開すると
と表わされ、n次の多項式の場合はn+1項の和で表わされる。ここでf(0)、f(Δ)、f(2Δ)、…、f(nΔ)を計算し、f'(0)=Δf(Δ)-f(0)、f'(Δ)=f(2Δ)-f(Δ)、…のように隣接した差分を計算し、更に、f''(0)=f'(Δ)-f'(0)、f''(Δ)=f'(2Δ)-f'(Δ)、…のように次々と差分を取って行くと、(n次の多項式をn回微分すると定数になるので)n回目の差分(Difference)は定数になる。
多項式の計算を
のように計算すると掛け算が必要になるが、f((n+1)Δ)をf(nΔ)+f'(nΔ)、f'(nΔ)をf'(nΔ)+f''(nΔ)、…と順に差分の和として表わすと、n回目の差分は定数であるので、このプロセスを逆方向に計算すると、加算だけで次々と多項式の値を計算できる。
このような加算をメカニカルに計算するマシンがDifference Engineである。
ロンドンのScience Museumに展示されているDifference Engine 2のレプリカ。(出典:Wikipedia |
写真で縦方向の棒のように見えている部分が10進1桁の数値を記憶して計算する部分で、この写真のマシンは、31桁の10進数を保持するカラムを7個備えており、31桁の精度で7次の多項式を計算することが出来る。
左端に見えるハンドルを廻すと、カラムの軸が回転し、2回の回転で偶数カラム(カラム2、4、6)に奇数カラム(3、5、7)の数値を足しこみ、更に2回の回転で、奇数カラム(カラム1、3、5)に偶数カラム(カラム2、4、6)の数値を足しこむという動作を行い、4回転で6回の加算を実行し、7次多項式の次の値が求まるようになっている。ということで、単なる加算器ではなく、パイプライン処理の嚆矢のとなるステムである。なお、1回の加算に2回転を必要とするのは、1回目の回転で各桁の加算を行い、2回目の回転でキャリーを足しこむためである。
Babbageの当初の開発には英国政府から資金が出ており、今で言うナショナルスパコンのような最先端マシンの開発であったのであろう。
単に、多項式の値を計算するだけではあまり面白くないが、対数や三角関数を多項式展開して近似値を計算して数表を作るのに使用され、この数表を使用して各種機械の設計が行われるというように、実際に役に立つマシンであったようである。
ホレリスのパンチカードシステム
1890年の米国の国勢調査に使用されたのが、Hollerithの開発したパンチカードシステムである。当時の米国の人口は6000万人程度であったが、前回1880年の国勢調査の結果を纏めるのには7年を要し、集計のための人件費も膨大なものであった。これを改善するためにHollerithが考えたのは、Jacquardが自動機織器のコントロールに考案したパンチカードを使うシステムである。
Hollerithのパンチカードシステムのカードパンチ(右)とマシン(左)。(出典:Computer History Museum) |
調査表に記入されたデータを元に、左側の写真のようなパンチでカードに穴をあける。手前に見えるテンプレートで、どこに穴を開けるかをノブのついたレバーで選択して押し下げると、右上にセットされたカードに穴が開けられる。
右側の写真に示すように、Hollerithのシステムは、左側のダイヤルが多数ついたテーブルと右側のソーターボックスからなっている。テーブルの上に載っているレバーのついたものがカードリーダで、上側のプレートにはスプリングのついた接点が並んでおり、下側のプレートには対応する水銀カップの接点が設けられている。この上下のプレートの間にパンチされたカードをセットし、上側のプレートをレバーで押し付けると、穴の開いた部分に対応する上下の接点が接触して導通状態となる。一方、穴の開いていないところの接点は接触しない。
例えば、白人をあらわす接点と、男性をあらわす接点を直列に繋げば、白人男性のカードが入ると電気が流れ、これがダイヤルのように見える電磁駆動のカウンタを進める。カウンタは2本の針があり、1の桁と100の桁があり9999までカウントすることが出来る。写真に見られるように、多数のカウンタがあるので、接点信号を直、並列に接続することにより、各種の条件に合致するカードの枚数を同時に数えることが出来る。
また、右側に見える箱は、小さく区切られた多数の小箱があり、それぞれの小箱にスプリングがついた蓋がついている。この蓋は閉じた状態で掛け金が掛かり、閉じた状態を保持しているが、接点信号を直、並列に接続に接続して作った回路により電磁石に電流を流すと、掛け金が外れて、スプリングの力で蓋が跳ね上がる。人手で、カードリーダからカードを取り出して、この蓋の開いた小箱にカードを入れ、蓋を押して閉めるという動作で、特定の条件にマッチしたカードだけを抜き出すことが出来る。
カードには、人種、性別、年齢、続き柄、未/既婚、職業、失業した月数、身体障害の有無と種類、文字の読み書きができるか、本人と父母の出生地などのデータが記入されており、このようなマシンを利用することにより、米国民の各種の統計情報を得ることができるようになったという。
このマシンの開発後の1896年に、Hollerithはパンチカードシステムを製造するTabulating Machine Companyを設立する。その後、この会社は、1911年にInternational Time Recording CompanyとComputing Scale Companyと合併してComputing Tabulating Reporting Corporation (CTR)となる。更に、このCTR社は1924年にInternational Business Machines Corporation (IBM)と名前を変える。
そして、パンチカードシステムは、パンチカードを自動搬送してソートを行う自動ソーターや、パンチカードをコピーするマシンが開発され、カウンタも電磁式から真空管を使った電子式に変わり、カウントした結果をプリンタで印刷できる機能などをもったマシンが開発されるというように発展を続け、1950年台までは、ビジネスコンピューティングの主流の地位を占めた。