私はプログラミング言語の歴史についての研究エッセイをやっていて、なぜプログラマーがパンチカードで自分のプログラムを書いたのかと思っていました。コンピューターの画面とキーボードは、プログラマーが使用する頃にはすでに存在していませんでしたか?
Jacquard織機の使用と目的のデザインを制御するために最初に発明されたのは知っていますが、人々がプログラムするとき、なぜ彼らはカードにプログラムを書くことに決めたのでしょうか?
コンピューターが非常に高価だったので、コンピューターにアクセスできる人があまりいないため、パンチカードでプログラムを作成し、それを実行する会社や誰か、または組織に提出して結果を伝えていたのでしょうか。
1974年以前のコンピューティングテクノロジーについては、あまりよく理解していないかもしれません。
タイムシェアリング、マルチユーザー、システムは50年代後半に発明されましたが、60年代を通じて比較的まれでした。ほとんどのコンピューターはバッチモードで実行され、一度に1つのプログラムを実行しました。カードリーダー、ラインプリンター、およびコンソールオペレーター用の個別のテレタイプ以外のユーザーと対話する機能はありませんでした。あなたが言うターミナル? 60年代後半までは、 ビデオディスプレイを備えた電子端末は、研究施設や航空管制や国防などの専門職に限定された、エキゾチックで非常に高価なガジェットでした 。インタラクティブセッションをサポートしていたコンピューターは、一般にテレタイプを使用していました。テレタイプでプログラムに入るのは、カードにパンチするのと同じくらい不快でした
バッチ処理の問題についてもう少し詳しく説明します。これは、現在ほとんどの人がコンピューターを使用している方法にはあまり関係がないためです。 50年代であっても、テレタイプと連動するインタラクティブ編集プログラムを作成することは確かに可能でした。ただし、バッチ処理のため、編集プログラムは、プログラムを編集しているテレタイプに座っている間ずっと、コンピューターを完全に独占していました。他の数百人から数千人がプログラムを実行する順番を待っていたので、あなたは非常に人気のない人でした。また、エディターの実行中は1分あたり数ドルが請求されます。プログラムを長文で書き、最終ドラフトをキーパンチオペレーターに渡し、パンチカードまたは紙テープにプログラムを転記させる方がはるかにコスト効率が高くなりました。これにより、「GOSUB」と入力するのを待機しているCPUの貴重なミリ秒を無駄にすることがなくなりました。
ハードディスクドライブも50年代後半に発明されましたが、それらは小さく(約1MB)、珍しく、高価であり、ユーザーが気軽にアクセスできるものではありませんでした。明らかに、ユーザーはある種の長期保存を必要としていました。選択肢は紙テープ、パンチカード、磁気テープでした。磁気テープは新しくて高価でした。一部のシステムでは紙テープが使用されていましたが、 パンチカードは、1928年以来、タブレーターやソーターなどのコンピューター以外のビジネスマシンで使用されている確立された技術です です。そして貯蔵。
パンチカードは、入力/出力媒体としてだけでなく、長期保存デバイスとしても機能しました。プログラムのカードデッキをリロードすることで、プログラムを複数回実行できます。ハードドライブ、フロッピードライブ、磁気テープはありませんでした。
[なぜ]プログラマーがパンチカードにプログラムを作成したのはなぜですか?コンピューターの画面とキーボードは、プログラマーが使用する時点ではすでに存在していませんでしたか?
私たちは、コンピューターが持っているI/Oメカニズムを使用します。 1960年代には紙テープが一般的でした。 1970年代(私がプログラミングを始めたとき)、紙テープはパンチカードに取って代わられていました。
はい、テレタイプを備えたマシンがあり、VDUと呼ばれる驚くべきものもありました。しかし、彼らはまだ主流ではありませんでした。これらのテクノロジーはどちらも、(メインフレーム)コンピューターオペレーターがより一般的に使用していました。めったにありません。
パンチカード時代のピークで、最も一般的なマシンはIBM029でした
その画像では、生徒たちは自分のコードを打ち込んでいます。プロのプログラマは、より一般的には、コーディングする言語に従ってフォーマットされたコーディングシートで手作業でコードを記述しました。
コーディングシートをデータセンターに送り、オペレーターはそれらをパンチングスピードでパンチングし、カードを検証オペレーターに渡します。彼女(データセンタースタッフの90%は女性で、マネージャーだけが男性でした)は、パンチマシンを確認モードに設定して、もう一度コードを入力します。マシンは、彼女がタイプしているものがすでにカードにあったものと異なる場合に丁度鳴ります。 2回行うことで、speedとaccuracyを達成しました。
カードを取り戻すとき、最初に行うことは、デッキ全体の上部に斜めの線を引くことでした。あなたがそれをする前にあなたのカードを落としたなら、災い!線が引かれたので、カードを落とした後にカードを順番に戻すという戦いのチャンスがありました。
多くのプログラム編集は、通常自分でパンチする新しいカードの挿入と、既存のカードをデッキの別の場所に移動することで構成されていました。もちろん、最初に描いた対角線はあまり役に立たないので、数回編集してから別の線を描きます。カードの行数が多すぎるか、カードリーダーで読み取りエラーが発生し始めたとき(最速のリーダーは毎分1200カード以上で動作したため、カードが読み取られるたびにドキドキしました)、デッキを送り返します。複製するデータセンターへ。
小さな編集は、ハンドパンチを使用して実行できます。
経験を積むと、各文字について ホレリスコード を学習し、キーボードを使用するのと同じくらい速くパンチできます。
エラーが発生したときに誰も見ていない場合は、カードから打ち抜かれた「チャド」で間違った穴を埋め、サムネイルでこすって、カードの残りの端とかみ合うようにすることができます。このようなパッチは、読み取りプロセス中に緩んでいたことがよくありますが、少なくとも1回は正常に機能していました。読み取りプロセス中にチャドが出た場合、「クラッシュ」が発生し、次のカードが押しつぶされ、認識できないほどしわになります。カードリーダーは位置がずれるので、コンピューターエンジニアが来て修正する必要があります。
1970年代後半になると、プログラムを磁気テープにロードすることが一般的になりました。テープは、コードを固定長の80文字のレコードで保持しており、編集を行う「ライブラリアン」プログラムがありました。私が覚えているように、実際にはLibrarianと呼ばれていました。編集を行うために別のカードデッキをコーディングするか、より一般的になるように、テレタイプまたはVDUを使用してオンラインで編集を行います。すごい!
それらのライブラリアンエディターを駆動するために使用される構文は IBM-PC Edlin 構文によく似ていました。
要約すると、利用可能なツールを使用します。最新のテクノロジーは常に最も高価であり、誰もがアクセスできるようになるまでには時間がかかる場合があります。それは、利便性とスキルの問題でもあります。私はラップトップでこれを入力していますが、スマートフォンでメールを書くときは、「swype」入力を使用します。この場合、指がキーボードの画像の上に奇妙なジグザグパターンを作り、ソフトウェアが私の意図する単語を処理します。
あなたのエッセイで頑張ってください。
歴史の重み...
200年以上前に発明された機械織機 Jacquard loom に戻りましょう。
織機は「カードのチェーン」、つまり連続したシーケンスにまとめられた多数のパンチされたカードによって制御されていました。
これは既知の技術であり、後に米国国勢調査局は集計マシン- Hollerith machine を使用して国勢調査データを集計しました。パンチカードを使って集めました。
ハーマンホレリスのタブレータは、紙のパンチカードの穴を「読み取る」ことで国勢調査データをキャプチャして処理する電気操作コンポーネントで構成されていました
これらの初期の集計マシンは後にコンピューターに進化しましたが、入力方法は同じままでした。
画面は存在し、キーボードは存在しますが(タイプライター)、それらをコンピューターに接続するという考えはありますか?しばらく時間がかかりました。
さらに、パンチカードは実行中のプログラムだけではなく、実際のデータでもあり、記憶媒体でもありました。ハードドライブも磁気テープもありませんでした。
私はUniでパンチカード(および「編集可能な」マークセンスカード-鉛筆+消しゴム!)を使用していたので、私は課題としてカードのデッキを提出しました。キーボードや端末は見えませんでした。そしてそれは-それではありませんでした:80年代。
「to punch in data」という用語の使用法はどこから来たと思いますか(ただし、以下を参照)。 「キーパンチオペレーター」という肩書きがありました。基本的には、カードパンチングマシンに座ってコード/データを「パンチ」したタイピストでした。
IBMは依然としてJCLプログラムを「デッキ」と呼んでおり、各行は最大80文字です-なぜですか?標準のパンチカードには80列あり、元のコンピューターでは、オペレーターはカード(プログラム)のデッキを入力ホッパーに入れて実行していました。 OS(MVS)は(IBMの後方互換性の約束により)古代のハードウェア制限にロックされていました。
Q:ドラマーとドラムマシンの違いは何ですか?
A:ドラムマシンでは、一度にパンチの情報しか得られません。
コンピュータの時間は当時非常に高価だったので、オフロードできるものはすべて通常そうでした。
コンピューターは、今日見られるように、最初から始まっていません。彼らはより機械的でした。パンチカードは、2進数を機械的に表すために使用されます。パンチカードの上を動く機械式読み取りヘッドが「穴」または「穴なし」を読み取ります。これらの穴の組み合わせと穴なしの組み合わせを使用して、機械装置の動作を制御できます。それによって、何かを制御するプログラムがあります!
磁気テープは、1951年にデータストレージに最初に使用されました。ハードドライブは1956年に導入されました。フロッピードライブは1971年に導入されました。これらのすべてのストレージメディアで、パンチカードは重要なスタートを切りました。
1970年代までに、IT組織は少なくともパンチカードからの移行を調査していた。 1980年代後半または1990年代初頭までに、移行はほぼ完了しました。
パンチされたカードは、少なくともいくつかの理由で、他のより効率的な記憶媒体が利用可能であったときに、その限りずっと保持されていました。
1)それらは使用中であり、慣性は克服するのが難しいものです。言い換えれば、「私たちはいつもこのようにしていた」。
2)コスト。 A 1 TB SATAドライブは今日50ドル強で手に入れることができますが、ムーアの法則の変化により、時間の経過とともにコストが下がっています。比較すると、Seagate ST-506 5 MBドライブ1980年の費用は1,500ドル(今日は約4,300ドル)。
当初、コンピューターシステムはプログラマーがアクセスできない部屋にあり、ほとんどのシステムは一度に1つのプログラムしか実行できませんでした(バッチ処理)。プログラムを実行させるには、パンチカードまたは紙テープを使用してプログラムを送信し、後で戻ってきて、通常は印刷物である結果を得ました。プログラマが「コンソール」への直接アクセスを許可されることはめったになく、もしそうであれば、それを書くことではなく、プログラムをデバッグすることでした。
1965年頃のプリエンプティブマルチタスクの登場により( Multics を参照)、「ターミナル」を介して多くのユーザーを一度にサポートできるようになりました。当初、これらの端末はマシンのようなテレタイプであり、その後キーボードを備えたCRTスクリーンでした。これらのシステムは1970年代初頭まで広く利用されていませんでした。
私の最初のコンピューターにはハードディスクがありませんでした。プログラムをコンパイルするために、コンパイラーはパンチされたカードからメモリーに読み込まれて実行されました。パンチされたカードからソースコードを読み取り、コンパイルされたバージョンをパンチします。そのバージョンはローダープログラムの後ろに置かれ、読み込まれました。そのときだけ、プログラムが実行されていました。ああ、古き良き日々;)