right|thumb|300px|20世紀に最も広く使われた80欄のパンチカード。寸法は 187.325 mm × 82.55 mm。この例は1964年のEBCDIC文字セットにそれ以前につかわれていた特殊記号を加えて示したものである。 パンチカード(英語:punched card)は、穿孔カードなどともいう、厚手の紙に穴を開けて、その位置や有無から情報を記録する記録媒体で、以前には鑽孔紙テープとともに多用された。電子式コンピュータ以前のパンチカードシステムの時代から多用されたものであるが、近年はコンピュータ用の主力メディアとしては過去のものとなっている。画像などといった大容量のデータを負担なく扱えるようになる以前には、四角い窓を作ってそこに写真フィルムを張る、といった使い方や、端に切れ込みを入れて串を使った手作業で分類できる edge-notched card(#ハンドソートパンチカードの節を参照)など、紙テープとは違ったカードならではの使い方もある。
現在の使われ方としては、国や地方によっては選挙の投票用であるとか、穴を開けるのではないものの、マークシート用で同一の大きさ・形状・材質のカードが使われていることがある。
歴史 right|thumb|ジャカード織機用のパンチカード パンチカードの先祖は織機に由来する。いくつかの先行例はあるが、広く知られている、「厚紙でできた」「定形のカードに」「穴を開けた」ものを利用して、模様を自動的に織り込むようなカラクリが組込まれた完成度の高い自動織機は、19世紀初頭、フランスのジョゼフ・マリー・ジャカールにより作られ、その名が付けられたジャカード織機は、その末裔が今日でも使われている。
機械の制御ではなく、情報の格納手段としてパンチカード状のものを最初に使ったのはとされている。コルサコフは彼の考案した技法と機械を1832年9月に発表し、特許を取得せずに機械を公的な用途に供したKorsakov's "Intellectual machines"。 right|thumb|セミヨン・コルサコフのパンチカード
19世紀に「(数値を)計算する機械」の制御にパンチカード状のものを使うことが構想されたものとして、チャールズ・バベッジの「解析機関」がある「階差機関」ではない。バベッジはジャカード織機をヒントにしたとされている。なお、解析機関は完成しなかった。
20世紀にコンピュータ用として多用されたパンチカードそのものの直接の祖先は、19世紀末のアメリカで、ハーマン・ホレリスによるものである。大規模な移民の受け入れにより急激に人口が膨張しつつあったアメリカでは、1880年の国勢調査が1889年になっても集計が完了しないという事態が発生していた(これには、単純な人口の増加だけではなく、集計する項目を増やしたことによる必要な作業量の増大にもよると言われる)。次回の調査を実施する時期に至ってもまだ前回の調査の集計が終わらないというこの困難を、ホレリスは機械の導入により解決することを考察した。当初は鑽孔テープなどを試したが、最終的にパンチカードという形態にたどり着いたColumbia University Computing History – Herman Hollerith。ホレリスが考案した、パンチカードを利用するデータ処理機械であるタビュレーティングマシンは、国勢調査の手作業による集計に比して10倍のスピードを実現したとされる。同時に、1〜9および0の、十進ヒトケタの整数値とアルファベットをパンチカードの穴でエンコードする一種の文字コード(現代の文字コードとは異なり、紙製のカードで利用する前提で設計されている(例えば、全部の桁に穴を開けたりはしない))「ホレリスコード」も考案した。直接の関係は無いが、古いFORTRANのソースコード中では、現代のプログラミング言語では "ABC" と書くような文字列を 3HABC のように「(文字数)H……」のように書いたのだが、この H はホレリスにちなんだものだとされており、Hollerith string literal という通称がある。
当時は手書きで記録を取り、それを事務所に持ち帰ってパンチカードに転記するという手間を踏んでおり、かつホレリスの集計機自体も1回1回人間が処理の仕方を設定する必要があるなどの欠点があったが、その圧倒的な処理能力は「驚異のテクノロジー」と賞賛され、政府機関だけではなく様々な分野で使用されていくことになる。多数の顧客情報を処理しなければならない保険会社などでも使われた。後に電気式加算機の計算機構を組み込んでかなりの計算ができる機械が登場し、会計処理だけでなく科学技術計算にも使われるようになった。
ホレリスは1枚のカードに45項目、1項目につき12種類の選択肢の情報が記録できるような仕様を策定した。このカードはサイズを身近な1ドル紙幣と同一にし、普及のために低額で販売したため、事実上の標準となった。そして1896年にこの事業のためにホレリスが興した「タビュレーティング・マシーンズ社」は、幾度かの統合を経て巨大企業IBMの母体となっていくHistory of the punch card。ホレリスの仕様は、後にIBMによってカードのサイズは同じままでカードの穴を円形から長方形にすることで80項目に拡張された。この仕様、特に「1行 80項目(桁)」は、FORTRANを筆頭としてその後長く受け継がれていくことになる(後述)。
1950年代まで、パンチカードはデータ入力やデータ保管、データ処理の主な手段として使われた(ただし、もっぱら鑽孔紙テープを利用したコンピュータ、あるいはテープを好んだ文化のメーカーもある)。IBMの記録によれば、IBMは1937年にはニューヨーク州エンディコットに32のパンチカード工場を持ち、毎日500万枚から1000万枚のパンチカードを生産していたIBM Archive: Endicott card manufacturing。パンチカードはアメリカ合衆国連邦政府の小切手や貯蓄債券など法的書類にも使われていた。
以上で述べたようなデータ処理機械の歴史に続いて、Harvard Mark I (1940年代) のような数値計算機械もあらわれ、第二次世界大戦の終わった後、急速に(電子式)コンピュータの発展が進み、数値計算とデータ処理の統合といえる、情報処理(information processing)やコンピューティングと言われるようになった(チューリングやノイマンやシャノンらによる数理的な理論の確立、という背景もある)。
1950年代、UNIVAC I の入出力装置UNITYPERが新たなデータ入力手段として磁気テープを導入した。1960年代には磁気テープを採用するコンピュータが増えていき、パンチカードから高速で書き換えの利く磁気テープへの移行が徐々に進行した。IBMはすぐにUNIVACを追撃し、1960年代には世界一のコンピュータ企業となった。
1965年、Mohawk Data Sciences はキーパンチの代替として直接磁気テープにタイピング内容を記録する磁気テープエンコーダという機器を発売し、ある程度の成功を収めた。それでもパンチカードはデータおよびプログラム入力手段として1980年代中ごろまで使われ続けた。1952年発売のIBM初の商用コンピュータIBM 701や、大ヒットとなったSystem/360のデータ入力の基本は80桁長方形の穴のパンチカードである。またUNIVACなどのコンピュータでは丸穴の90桁のカードが使われた。
元々機械的な装置だった時代にアウトラインが決まったものであるため比較的大きく、トランジスタ化などコンピュータの進歩に合わせ小型化したものも試作されたりしているが、既にデファクトスタンダードとして普及してしまったものを置き換えるには至らなかった。
またプログラミングなどの際には、穿孔してしまうので現代のテキストエディタのような文字単位の編集は後から一切できないという欠点から、一般に鉛筆などを用いて別の紙いわゆる「コーディング用紙」は、元々はプログラミング言語以前の時代に発生したものだが、この時代にこの目的などで多用されたものであった。、あるいはカードの上辺の間隔が空く位置に書き込んでおき、あとでまとめてパンチしていた(なお、コンピュータ時代のパンチ機械には、穿孔と同時に印字されるといったものも多い)。大規模な組織などでは、プログラマとは別にキーパンチャー(単にパンチャーとも)という専門職によってプログラム用のカードもパンチされるなど分業されていることもあった。
パンチカードの利点は、行単位の編集が容易であるということがある。プログラムの1行がパンチカードの1枚になるため、内容を修正したい場合は、修正行に相当するカードを差し替えるだけでよい。また、ブロック単位に移動する場合もカードを入れ替えるだけで済む。これは紙テープでは物理的な切り貼りを行う必要があることを考えると、非常に効率的と言える。一方で行単位ではない編集は極端に苦手であり、むしろ紙テープの物理的な切り貼りのほうが有利と言える。プログラマによっては、全く同じ内容になるような行が現れるように工夫し、「ソースコードの再利用」を実際のパンチカードの再利用として行っていた者もいた。
また、当時ありがちだった事象として、パンチカードの束(デック)を、落とすなどしたはずみでバラバラに散らしてしまい、順序がわからなくなってしまうと並べ直すのが大変、というものがあった。通し番号が打たれているなどすればなんとかなるが、さもなくば入力し直した方が早いなどとも言われた。当時の写真などで、カードデック上部に斜線を引いたりしたものがあるのは、並べ直しを簡単にするための工夫である。
1970年代から1980年代にかけて、磁気ディスクや端末が低価格化し、安価なミニコンピュータが普及したため、パンチカードはコンピュータへのデータ入力手段としての役目をほぼ終えた。また、そもそもミニコンピュータはメインフレームとは違う文化圏を形成し、その文化圏では紙テープのほうが好まれた、といった側面もある。それでも、多くの業界標準規格やファイルフォーマットにパンチカードの影響が残っている。パンチカードの代替となった IBM 3270 などの端末は、既存のソフトウェアとの互換性を考慮して一行の表示文字数をパンチカードと同じ80文字とした。グラフィカルユーザインタフェースは可変幅のフォントも表示可能だが、1行80文字を前提としたプログラムは今もある。
ごく簡単な読取機が作れる紙テープとは違い、比較するとかなり大袈裟な機構が必要なパンチカードは、1970年代の「マイコン革命」(:en:Microcomputer revolution)においては完全に「旧勢力の遺跡」であり、その後のパーソナルコンピュータの誕生と普及によって、絶対数としては大きく減ったわけではないのだが相対的には圧倒的少数となったメインフレームと共に、少数派の存在となった。
2000年代頃より宿泊施設のカード型キーとして使われている所もある。穴を穿った厚めの紙をスリットに挿れ、その穴のパターンを読み取りロックを操作する。チェックアウトの際にそのパターンは無効となり、次のチェックインに新しいパターンが充てられる。
影響 ホレリス(IBM)の80欄パンチカードが、コンピュータに与えた影響には以下がある。 メインフレームなどの大半の設定ファイルやJCLなどは、今(2014年)も1行80桁が基本である FORTRANなどの言語は、今(2014年)も1行80桁が基本である 桁数に制限のない言語でもプログラミング作法として、1行を80桁とする流儀は今(2014年)でも根強い 3270や5250などメインフレーム用の表示装置やエミュレータは、今も1行80桁が基本である IBM PC以後のパーソナルコンピュータの表示解像度(ピクセル)も、1行80桁が基本である MDAはキャラクタ表示で1行80桁 グラフィックモードでも、CGA、MCGA、EGA、VGAなど(更にはPC-9801やFM-Rなど、同時代のMS-DOS搭載PCの大半)は、全て1行のビット(ピクセル)数が80の倍数である(XGAは1024x768だが、元となった8514/Aは正確には1040x768で、やはり80の倍数であった) ただし、パーソナルコンピュータの表示については、モニターに家庭用テレビを流用する設計としていた機種における、家庭用テレビの性能にもとづく仕様(40文字のものがあった)に由来する部分もあるので、パンチカードの80桁からの由来が全てではない CMD.EXEやxtermなど端末エミュレータの起動時のデフォルトのウィンドウサイズは80桁に合わせたサイズである また、モニターディスプレイのデフォルトの状態のコンソール(で表示されるブルースクリーンなどの画面)なども、1行80桁が基本である(ことが多い)
投開票への使用 世界的に、大規模な選挙においては記号式投票が一般的であるため、その一手段としてパンチカードが投開票に使用されることもある。アメリカ合衆国の大統領選挙では1964年から採用する州や郡がある。1996年の時点では、登録有権者数において37.3%の地区でパンチカード式投票を採用していたPunchcards アメリカ合衆国連邦選挙委員会 2011年10月6日閲覧。これは有権者がパンチカードに孔を穿つ方式だが、穿孔装置を押す力が弱い場合などに「穿孔くず」が残るなどして、誤った読み取りや、それに基づく問題を生んだ。2000年のアメリカ大統領選挙では再集計の度に集計結果が異なり、以前からあったこのシステムへの疑義が改めて提示されることとなった。
(この場合の)パンチカードは不完全なデジタル情報を記録するものであり、「孔が空いている」「空いていない」を人間が判断する必要が生じたことなどが、その原因の一つとして挙げられている。また、穿孔くずによって機械が止まり、それによって無効票が多数出るなどの問題も発生した。
ハンドソートパンチカード これは、手操作により簡単に扱えるカードとして、事務用や調査データの処理用に以前は盛んに用いられたものである。英語では edge-notched card(:en:Edge-notched card)という(日本では、日本パンチカード工業(株)が、『ハンドソートパンチカード』という名前で製造販売していたhttp://www.npc-web.co.jp/ にある「当サイトからのごあいさつ」を参照。現在製造終了。)。カードの周囲に多数の孔を開けたもので、特定の孔の部分を切符の改札のように切り取ることで情報を記録し、孔に棒を通して引き上げると、そこが切られたカードだけが振り落とされる、というものである(ここで使われている「ソート」の語は広義の用法で、数値的に昇順or降順に並べるという意味より広く、分類する、といったような意味である)。自然数の値を二進法で表現し、基数ソートによって数値的にソートすることもできる。
呼称 パンチカードは、IBMカードやホレリスカードとも呼ばれた。IBM自身は、文書で言及する際は最初に「IBMカード」"An important function in IBM Accounting is the automatic preparation of IBM cards." IBM 519 Principles of Operation, Form 22-3292-5, 1946あるいは「パンチカード」と呼び、その後は単に「カード」と呼んでいた"The IBM 1402 Card Read-Punch provides the system with simultaneous punched-card input and output. This unit has two card feeds." Reference Manual 1401 Data Processing System, Form A24-1403-4, 1961。穴を開ける前のカードを "punched card" と呼ぶのは矛盾しているため、「タビュレーティングカード」あるいは「タブカード」という呼称も用いられていた。
フォーマット 当初、用途ごとにデザインされたカードレイアウトが使われていた。パンチカードとそれを扱う機械が標準化されるのは1928年ごろのことである。長方形、円形、楕円形などの穿孔くずはチャド (chad) またはチップ(chip、IBMの用語)と呼ばれる。複数文字からなるデータや大きな数はカード内の連続する欄をフィールドとして格納される。一連のカードの集まりをデックまたはデッキ (deck) と呼ぶ。カードの上辺の左右どちらかの端を斜めに切るのが一般的で、それによってデック内のカード順序の間違いや反対側の端が切られた別のデックのカードが混じっている場合などを容易に検出できるようにしていた。カードには穴の位置が判別できるような印刷がされているのが一般的である。特定用途用に縦の線を印刷することでフィールドを区切ったり、フィールド名を印刷したカードも存在した。
ホレリスによるもの thumb|ホレリスカード(出典: Railroad Gazette,1895)Railroad Gazette, April 19, 1895 ハーマン・ホレリスは、機械式タビュレーティングマシンの一連の特許, , を1889年に取得した。それらの特許では、記録媒体として紙テープと長方形のカードの両方を記述している。 で示しているカードはテンプレートが予め印刷されていて、穴は辺に沿って開けることになっており、車掌が使っていた改札鋏を穿孔に使うことを想定していた。カードの中央部分は文字などの書き込み用とされていた。そもそもホレリスは、車掌が切符の端に鋏を入れる位置で乗客を大まかに分類していたことから、この方式を思いついた。
私は西部に旅したとき、たしか punch photograph と呼ばれる切符を持っていた。車掌は乗客の明るい頭髪、黒い瞳、大きな鼻といった特徴に応じて切符の所定の位置に入鋏していた。見ての通り、私がやったのは punch photograph を全員ぶん作っただけのことだ History.rochester.edu 。
改札鋏を使う方法は単調で間違いやすかったので、ホレリスはカード全体を穿孔領域とし、パンタグラフ型のキーパンチ(穿孔器具)を発明した。また同時にカードにテンプレートを印刷するのをやめ、パンチ機側にマスターテンプレートを装備し、人間がそれを見てパンチ位置を決定できるようにした。ホレリスはいくつかのカードサイズを検討した。1890年の国勢調査の集計に対してホレリスが提案したシステムでは、「一般的なあらゆる用途に対応できる」ものとして3インチ×5.5インチのマニラアサの繊維で作った紙を示唆している[-245-] An Electric Tabulating System, The Quarterly, Columbia University School of Mines, Vol.X No.16 (April 1889)。
1890年の国勢調査で使われたカードは丸い穴を開けるもので、24欄12行の構成だった。このカードを使用する装置などの情報は、コロンビア大学のコンピュータ史についてのサイトにあるColumbia University Computing History: Hollerith 1890 Census Tabulator。ある時点から3.25×7.375インチ (82.550×187.325mm) が標準カードサイズとなった。これは当時の1ドル紙幣より若干大きく(1ドル紙幣が2014年現在の大きさになったのは1929年から)、コロンビア大学のサイトによれば、紙幣運搬用の箱にぴったり収まるようにこの大きさにしたのだという。
ホレリスの当初のシステムでは、用途によって場当たり的な符号化システムを採用していた。つまり、いくつかの穴が特定の意味、例えば性別や既婚か未婚かなどを表すようにしていた。当時のタビュレーティングマシンには最大40個のカウンタがあり、それぞれに1周で100までを表せるダイヤルが対応していて、2つ1組で、一方のダイヤルがカウントアップして一周したらもう一方のダイヤルが1目盛りだけカウントアップするようになっていた。それによって10,000までのカウントが可能である。集計作業に際しては、個々のカウンタが特定の穴の位置に対応付けられている。ホレリスはまた、リレー回路を使った穴の組合せのカウントも可能にしており、例えば既婚の女性のみをカウントするといったことが可能だった。
その後符号化が標準化され、12行のうち下の10行を数字の0から9に対応させた。これにより連続する複数欄を使って大きな数値を表現できるようになり、単なるカウント以上のことが可能となった。Comrieの The application of the Hollerith Tabulating Machine to Brown's Tables of the Moon にはホレリスの45欄カードのイラストがあるPlates from: 。
IBMの80欄カードと文字コード thumb|260px|IBMの80欄カード。FORTRANプログラムの1行 "Z(1) = Y + W(1)" がパンチされている。 1928年、IBMは縦長の長方形の穴を採用し、80欄で各欄に12のパンチ位置があり、1欄(コラム)で1文字を表す形式のカードを設計したIBM Archive: 1928.。寸法は 187.325 mm × 82.55 mm(×インチ)である。材質は厚さ178μm(0.007インチ)の滑らかな紙である。重ねると、143枚で1インチの厚さ(約56枚で1cm)となる。1964年、IBMは四隅を丸めた形に変更したIBM Archive: Old/New-Cards.。通常、2000枚が箱に収められた形かp. 405, "How Computational Chemistry Became Important in the Pharmaceutical Industry", Donald B. Boyd, chapter 7 in Reviews in Computational Chemistry, Volume 23, edited by Kenny B. Lipkowitz, Thomas R. Cundari and Donald B. Boyd, Wiley, 2007, .、連続帳票形式で販売された。連続帳票型のカードは、事前に番号とそれに対応する穴を開けた状態で販売されており、例えば小切手など厳密な文書管理が必要な用途に使われた。
1つの欄には数字の0から9に対応する部分と、カード上方のY-X-0ゾーン(12-11-0ゾーンとも呼ばれた)がある。数値のみを格納するだけなら各欄に1つだけ穴を開ければよい。数値の正負の符号は、最下位桁のY-Xゾーンで表し、正ならY、負ならXをパンチする。Y-Xゾーンは他にもマスターレコードであることを示すなど、様々な意味で使われた。カードの最上端にパンチ内容に対応した文字も印刷できる。また、81番目の爛もあり、これはプログラムなどの複雑なカードをカード穿孔機・カード読取機が処理する場合に、穿孔・読取誤り防止用のチェックディジットとして使われた。
______________________________________________ /&-0123456789ABCDEFGHIJKLMNOPQR/STUVWXYZ Y / x xxxxxxxxx X| x xxxxxxxxx 0| x xxxxxxxxx 1| x x x x 2| x x x x 3| x x x x 4| x x x x 5| x x x x 6| x x x x 7| x x x x 8| x x x x 9| x x x x |________________________________________________
right|thumb|IBM以外の業者が製造した5081型のカード。四隅が磨り減っている。 その後、1欄に複数の穴を開けることで英大文字と特殊記号を表現するようになった特殊記号は英数字以外の文字で、例えば "&#,$.-/@%*?" など。英字は2カ所に穴を開け(Y-X-0ゾーンと数字1-9)、特殊記号は3カ所に穴を開ける(Y-X-0ゾーンと数字2-7と数字8)。一部の特殊記号は1穴または2穴で表される(EBCDICの "&" は12(Y)のみ、"-" は11(X)のみ、"/" は 0 + 1)。これにより、ゾーン [12, 11] と数字 [1-9] の組合せが何を表しているかはその欄の使いかたに依存するようになった。例えば、"12-1" という組合せは英字があるはずの欄では "A" を表し、符号付き数値があるはずの欄では正の符号つきの数字 "1" を表し、符号がないはずの位置の数字 "1" なら "12" は別の何らかの意味を持つ。EBCDICは1964年に導入され、最大6箇所に穴を開けるようになった(ゾーン [12,11,0,8,9] + 数字 [1-7])。IBMや他の製造業者は80欄カードに様々な文字コードを採用した。1969年のANSI規格では128種類の文字のパンチカード上のコードを定義しており、ホレリスコード(Hollerith Punched Card Code または Hollerith Card Code)と呼ばれるMackenzie, C.E. (1980). Coded Character Sets, History and Development, Addison-Wesley, page 7。
thumb|250px|バイナリコードのパンチカード 用途によってはバイナリ形式が使われ、それぞれの穴が1つのバイナリディジット(ビット)を表し、各欄(列)が単なるビットフィールドとして扱われ、任意の組合せで穴を開けられる。例えば704/709/7090/7094シリーズ科学技術コンピュータで使われた IBM 711 カード読取装置は欄(列)ではなく1行を36ビットワードを2つ格納したものと解釈した(72欄を使用し、8欄は無視する。無視する8欄をどこにするかは読取装置のプラグボードで変更可能だが、通常右端の8欄を無視する)。この無視される8欄(通常、73-80)をシーケンス番号を入れるのに使うことがあり、カードデックを落としたときなどにソートするのに使った。IBM 1130やSystem/360といったコンピュータでは全ての欄を使った。IBM 1402 カード読取/穿孔装置では、縦の1欄に2文字を格納するコラムバイナリというモードを使い、3欄(3行)で36ビットワードを表した。しかし、多くの古い穿孔装置は1欄に3穴までしか穿孔できず、バイナリカードを作ることはできなかった。
right|thumb|1970年代に作られた lace card バイナリモードの冗談として、全部の位置に穴を開けたカードを作ることもでき、それを "lace card" と呼んだ。そのようなカードはカードとしての強度が足りず、機械の中で曲がったり詰まったりする。
80欄のカード形式は市場をほぼ独占し、他の業者も生産していたがIBMカードと呼ばれていた。
最もよく使われたのは IBM 5081 というフィールド分割されていない汎用のパンチカードである。その品番と形式は US Government Standard Form 5081 として採用され、他社もその番号を品名に採用していた。そのためユーザーにもその品番が知られていた。
マークセンスカード