プログラマーがパンチカードを使用した場合、プログラミングはどのように機能しましたか?


11

私はこれを見ました:パンチカードでプログラムすることを学ぶ

そして私はこれを見てきました:http : //en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era

しかし、彼らは望まれる多くを残します。

誰かがパンチカードを使用したときにプログラマがどのようにプログラミングしたかを誰かに説明できますか?具体的には、パンチされたカード自体から命令を取得するために使用される入力コンピューターのシステム。

レトロコンピュータについてはあまり知りませんので、あなたがおなじみの入力システムならどれでもかまいません。より一般的な回答も歓迎します。

回答:


16

一言で言えば、貧弱です。

少なくとも、私が使用したり聞いたりしたどのマシンでも、一度に1枚ずつカードをフィードしませんでした。毎分数百枚のカードをフィードして読み取る自動カードリーダーがありました(おそらく1000 /分程度ですが、正確な仕様はわかりません)。

典型的なケースでは、コードを手で書いて、それをカードにパンチしました。各カードは1行のコード(最大80列)を保持します。カードデッキを実行しました。バックログに応じて、1時間程度から1日程​​度のいずれかで、結果のプリントアウトとともにデッキを取り戻しました。

私はおそらく追加する必要があります:カードデッキはジョブとして実行されたため、プログラム自体のコードを送信するだけでなく、バ​​ッチファイル/シェルスクリプトに漠然と似たものを作成して、コンパイルして実行するように指示する必要がありました。コード。IBM JCL(一例として)は、ホレリスカードの発行元から大きな影響を受けています。

もう1つのマイナーなポイント:私が覚えているほとんどのシステムでは、通常、各パンチカードに行番号を含めました。できればデッキを落とすのを避けたのは明らかですが、(もしそうでなくても)デッキを落としたとき、それは多くの人が想像する悲劇とはほとんど違いました。興味深いサイドポイント:少なくとも私が見たカードソーターは基数ソートを使用していました-彼らはカードを行番号の1桁に基づいて10個のビンに分け、それらを「マージ」します(すべてのカードを1つにドロップします)順番にビンに入れてください)次に、行番号の桁数と同じ回数繰り返します。

ホレリスカードは非常に影響力がありました-制限がまだほとんど不安な程度まで残っているので、80列です。少なくともコントロールデータのメインフレームでは、ファイルシステムなどの影響も非常に大きくなります。ホレリスカードがほとんどなくなった後も、OSにはそれらの残骸が表示されていました。たとえば、テキストファイルは、実際に1行に含まれる文字の数に関係なく、80文字の一連のレコードとして保存されていました。Unixのようなシステムの「後方性」に驚いたことは、テキストファイルのN行目を直接探すだけでなく、前の行すべてを読み取ってN行目を探す必要があったことを覚えています。


あなたが説明することは、物事を行うためのはるかに近代的な方法だと思います。カードソーターとフィーダー?善、私の母はそれのために殺したでしょう...:-D
littleadv

@littleadv:ホレリスカードとフィーダーコンピューターよりも古いものです。選別機についてはあまり確信がありませんが、選別機もそうだと確信しています。
ジェリーコフィン

1
私たちはCOBOLとRPGIIIを手で紙に書いてから、自分でカードをパンチしました。カードの右4文字がプログラムの「行番号」に使用されました。はい、私は以前にカードのトレイを落としたことがあります。キーパンチと同じ部屋にカードソーターがありました。COBOLとRPGIIIは非常に厳密にフォーマットされた言語でした。コードを実行するには、特定の順序にする必要があります。次に、カードのトレイが実行され、オペレーターがジョブを実行して、カードのトレイと一緒にプリントアウトしました。うまくいけば、間違いはありませんでした。
MB34 2012年

4
029キーパンチマシンが2台ある部屋がありましたが、ソーターはありませんでした。したがって、カードに番号が付けられていたとしても、このように上部に斜めの線を引くのが常でした。車の箱を落とした場合、通常、それらはいくつかのグループで床に行き着きます。最初にこれらの線に基づいてかなりうまく組み合わせて、カード番号が正しいことを確認することで作業を終了できます。
tcrosley

2
プログラムはカードにパンチされただけでなく、入力データと出力データもカードにパンチされました。カードは、70年代後半と80年代前半の主要なストレージ形式でした。ディスク容量が高すぎて、コンパイラとローダー以外には使用できませんでした。
Gilbert Le Blanc 2014

6

編集者としてカードパンチを使用しました。

  • 挿入==新しいカードをパンチします。
  • 移動==カードを手に取り、正しい場所に移動します。
  • 削除==カードを取り出し、ビンに捨てる
  • コピー-より優れたカードパンチには、別のカードを列ごとにコピーできるコピー機能がありました。
  • 文字を置き換える-コピー機能を使用しますが、置き換える必要のある文字に到達したら、置換文字を入力します。
  • キャラクターを削除する-コピー機能を使用しますが、コピーしたカードを保持して移動を停止し、「削除」する各キャラクターのスペースを押します
  • 文字を挿入する-コピー機能を使用しますが、新しいテキストを入力するときは元のカードを動かさないでください。

ほとんどの場合、カードは「不変」でしたが、薄い不透明の粘着テープで穴をテーピングすることにより、キャラクターを削除できました。

適切なJCLで囲まれたプログラムを読み取り、プリンターが結果を出力するのを待ちました。(何時間もかかるかもしれません!)


4

とてもゆっくり。

私の母はそのようなプログラマーだったので、育っている間、私は家にこれらのカードをたくさん持っていました。彼らが行うことは、プログラムをカードにエンコードし、カードを1枚ずつカードリーダーに送り込むことでした(現在の投票機の仕組みと同様)。あなたがカードを落とした場合-あなたはあなたに割り当てられたXマシンの時間しか持っておらず、あなたはそれらを正しい順序で配置してマシンをもう一度やり直さなければならず、次のプログラマがあなたを追い出す前に時間通りに。ささいな(現在の標準では)プログラムでは、数千とまではいかなくても数百枚のそのようなカードと、それをロードして実行するのに何時間ものマシン時間が必要だったかもしれません。

とても退屈です。


一方、業界にはおそらく寄生虫がはるかに少なかった:)
haylem

「寄生虫」をどのように定義するかによって異なります.... :)
littleadv

残念ながら、当時の有名な「バグ」という意味ではありませんでしたが、現在ITバンドワゴンに飛びついている人々の大群です。
ヘイレム2012年

ああノスタルジア...昔、世界はもっといい場所でした!しかし、実際には、それは主に私たちが悪いことを忘れがちだからです。あらゆる種類のバンドワゴンに飛び乗る人々の大群がありました、いつもそうであり続けます。
littleadv

しー あれらの日々でした。それで全部です。(私は実際にはわかりません、私はそこにいませんでした。)
haylem

1

ある意味では「あまり変わらない」、ある意味では「非常に異なる」。

彼らは通常紙にソースコードを書いた。次に、これをパンチカードに再入力しました(通常、カードごとに1行のソースコードで、行番号が付いているため、間違った順序でソースコードを修正できます)。

次に、プログラムの前に、プログラムのコンパイル方法の説明が記載されたカードと、プログラムの実行方法および使用するデータファイル(またはマウントするテープなど)の説明が記載されたカードが付けられました。

これをオペレーターに提出すると、オペレーターがカードをスピードリーダーにロードしてジョブを実行し、結果を印刷して返します。

典型的な編集/コンパイル/結果のサイクルは「明日」のオーダーであり、人々は構文エラーについてコードをベンチチェックするより偏執的な傾向がある傾向があります。

対話型デバッグの可能性がない場合、実行をトレースする唯一の方法は、実行中に出力されるデバッグ行です。

一部の場所では、コードはパンチカードではなくパンチテープにあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.