パンチカードシステム

パンチカードシステム（英語: Unit record equipmentまたはPunched card system、略称：PCS）は電子計算機が登場する以前に、パンチカードを利用してデータ処理を行った際に使われた機器の総称で、カード穿孔機（キーパンチ）、分類機（ソーター）、会計機（タビュレーター）などがあった。

概要

電子計算機の発明以前、データ処理はタビュレーティングマシンの進化したパンチカードシステム（Punch Card System、PCS）と呼ばれる電気機械式機器で行われるようになった。和製英語だという主張もあるようだが、英語圏での使用例もある。英語圏ではユニットレコード装置（Unit Record Equipment）、電気会計機（Electric Accounting Machine、EAM）などとも呼ぶ。
ユニットレコードとは、19世紀末から20世紀初頭にかけて使われた、1つの文書上のオブジェクトや処理に関する全情報の記録を指した言葉である。例えば、図書館の索引カードはユニットレコードの一例である。ユニットレコード用の机も製造されており、パンチカードなどで記録されたユニットレコードを格納しておく机を tub file と呼んだ。当時（1888年）の書籍には「我々は鉄道用のあらゆる車両や機関車についての記録をパンチカードまたは他のユニットレコードの形で保持しており、それらは Car Accountant's Office または他の手段で作成された」という記述も見られる。ここから、パンチカードはユニットレコードの一種だが、ユニットレコードの方が幅広い意味を持つことがわかる。Markus Krajewski はこのユニットレコードの概念を発展させた人物を書誌学者のコンラート・ゲスナーだとしている。
20世紀後半にコンピュータが担った役割を20世紀前半ではPCSが産業界や政府関連で果たしたのである。データ処理はパンチカードのデッキ（束）を入力として様々な機器を連結してなされた。機器間のカードデッキのフロー（流れ）は大きな紙に標準化されたシンボルを使って記述され、そのような図を今ではフローチャートと呼ぶ。各機器はパンチカードを高速に処理するための機械式フィーダーを備えており、毎分百枚から2千枚のカードを送り込み、電気的センサーか光センサーで穴の位置を調べる。多くの機器の動作は着脱可能なプラグボードを使って指定できる。初期の機器は電気機械式のカウンターと継電器を使って構築されていた。電子部品は1940年代後半から導入され始めた。
PCSの最大の供給業者はIBMである。以下では主にIBMのPCS各機器について解説する。

パンチカードとキーパンチ

基本データ単位は80桁のパンチカードである。各桁は一つの数字、文字、特殊記号などを表している。データ値は隣接する複数の桁による「フィールド」から構成される。例えば、社員番号5桁、時給レート3桁、ある週の実働時間2桁、部門番号3桁、プロジェクト課金コード6桁というふうに並んでいる。
元のデータはキーパンチと呼ばれる機械を使って人手で入力された。キーパンチにはタイプライター状のキーボードと未入力のカードと入力済みカードが置かれるホッパーで構成される。後にはカードにパンチした内容がカード上端に印字されるようになった（IBM 026 など）。場合によってはパンチされたカードは次の「検孔機 verifier」と呼ばれるキーパンチによく似た機械に送られる。検孔機の操作者はキーパンチと同じ内容を入力し、検孔機内部でそれがパンチ済みの内容と合っているかチェックする。問題なければ、カードの右端に小さなポッチがパンチされる。

分類機

PCSの主要な機能のひとつはパンチされたデータに従ってパンチカードのデッキを適切な順に分類（ソート）することである。同じデッキでも処理手順によって異なったソートをすることがある。IBM 80シリーズのようなソータは、ひとつの入力デッキを指定された桁の内容に従って13個の出力デッキに振り分ける。なお、13番目のデッキ格納場所は指定された桁に情報がパンチされていないカードやリジェクトされたカードのためのものである。ソートアルゴリズムとしては基数ソートやバケットソート、あるいはそれらの組み合わせが使われた。
データ処理業務は毎日バッチ形式で一括処理するのが一般的であった。一日の業務でパンチされたカードをソートしてからマスターデッキにマージし、その後作表処理が行われる。

作表機・会計機

リポートや集計は作表機（別名：会計機、例えば IBM 407会計機）で行われる。ソートされたデッキを供給すると、作表機が各カードの内容をそれぞれ一行で印字したり、指定されたフィールドの値が内蔵のカウンターに加算され、特殊なパンチ穴のあるマスターカードを検出するとカウンターの値を合計値として小計・総計を印字する。
後にプラグボードによるプログラムが可能となり、ひとつのカードのふたつのフィールドの値を入力として乗算なども行えるようになった。また、その計算結果を同じカードの所定のフィールドにパンチして記録することもできるようになった。

さん孔テープとの連携

IBM 046 Tape-to-Card Punch と IBM 047 Tape-to-Card Printing Punch（印字機能の有無以外には違いはない）は、さん孔テープから読み取ってパンチカードに穴を開けることでデータを複写する。IBM 063 Card-Controlled Tape Punch は逆にパンチカードを読み取ってそのデータをさん孔テープに穴を開けることで複写する。

操作

基本的に、作表機はパンチカードを1枚ずつ読み込み、一部（フィールド）を（必要なら並べ替えた上で）連続帳票に印字し、パンチカード上の1つ以上の数値をカウンタ（アキュムレータ）に加算する。初期の機種ではアキュムレータによってダイヤルがセットされるので、最終的に人間がダイヤルから総計を読み取っていた。後の機種では総計を直接印字可能になった。特定位置に穴のあるカードをマスターカードと呼び、通常とは扱いが異なる。例えば、顧客マスターカードをその顧客の購入商品のカード群をソートしたものに付け加える。これを送り状を作るためにタビュレーティングマシンに読み込ませると、送付先住所と顧客番号がマスターカードから読み込まれて印字され、個々の購入商品と価格が印字される。次の顧客マスターカードを検出すると、アキュムレータにある総額を印字し、ページ送りする。

プログラミング

ソーター以外のPCSはプラグボード制御盤を使ってプログラム可能であった。パネルにはグループ化された穴の配列がある。これらの穴を導線でつなぐことでプログラムする。カードのフィールドに相当する穴と何らかの制御（集計、四則演算など）に対応する穴をつなぐことで処理が行われる。一般にある処理を行うための配線済みプラグボードを複数用意して、業務ごとにプラグボードを入れ替えて使う。
ワイヤは長さごとに色が決まっていて、たくさんのワイヤが集積することでプログラミングが困難になるのを防いでいた。またワイヤには一時的なものと永続的なものがあり、永続的なものは特殊な工具を使わないと取り外せないようになっていて、デバッグ完了後はそのような配線を使うのが一般的であった。
なお、プラグボードの配線を「プログラミング」と呼ぶのは後世の呼称であり、当時は "functional wiring" などと呼んでいた。

コンピュータ時代のPCS

1948年、IBM 604 が発表された。この機械はカード・プログラムド・カリキュレータ（Card Programmed Calculator、CPC）と呼ばれ、真空管を使った計算機構を備えていた。これは10年間で5600台を販売するベストセラーとなった。これを代替する目的で開発されたコンピュータが IBM 650 である。
初期のコンピュータプログラムは入力および保管にパンチカードを使用した。企業や大学にはキーパンチ機が並んだ部屋があり、プログラマはそのような部屋で作業した。IBM 407 会計機を使ってパンチカードの内容を印字し、プログラムのデバッグに活用することもあった。IBM 519 を使ってプログラムのカードデッキのバックアップを作ることもあった。519 は73～80桁の位置に連続番号を打つのにも使われた。これはFORTRANやCOBOLがその桁位置を使っていないことから、それらのプログラムデッキに活用された。順番に並んでいたデッキを落とすなどしてバラバラにしてしまった場合には IBM 80シリーズのソーターを使った。より簡単な方法としては、カードデッキの上端の側面にペンなどで何かを書いておくと正しく並んでいることが確認できた。
IBM 1401 のような初期の商用コンピュータはパンチカードを入出力として、より複雑な結果を得られるようになっていた。しかし、多くの場合記憶媒体としては磁気テープが使われ、磁気テープへのデータ入力手段としてパンチカードが使われるようになっていった。
作業手順が変わることに抵抗を示す組織は多く、コンピュータが登場してからもPCSが使われることは多かった。料金集計、マイクロフィルムアパーチャーカード（パンチカードの一部にマイクロフィルムを埋め込んだカード）、投票システムなど、PCSは21世紀になっても使われている。
System/3 は IBM のミッドレンジコンピュータの先祖とも言うべき機種だが、PCSを完全に置き換える目的で開発された。