Cコンパイラの最初のバージョンが数十分間実行され、ステージ間でフロッピーディスクを交換する必要があったのは本当ですか?


15

この質問に触発されました

パソコン用の非常に初期のバージョンのCコンパイラ(1980年頃だと思います)が2つまたは3つのフロッピーディスクに常駐していたので、プログラムをコンパイルするために最初に「最初のパス」でディスクを挿入する必要があると聞きました「最初のパス」、次に「2回目のパス」でディスクに変更し、それを実行してから、「3回目のパス」で同じことを行います。各パスは数十分間実行されたため、開発者はタイプミスでも多くの時間を失いました。

その主張はどれほど現実的ですか?実際の数字と詳細は何ですか?


2
本当のように思えます。60年代、プログラムがパンチカードや紙テープにあった場合、プログラマはタイプミスを見つけるのに1日以上待たなければならない場合がありました。
クリスカード

3
興味深い質問。これが本当なら、私は今ではなく今生きているのがうれしいです;)
アント

2
アムストラッドのパソコンでパスカルをコンパイルするには、ディスクを複数回交換しなければならなかったことを覚えています
マーティンヨーク

1日待つことは、ジョブの実行時間ではなく、前にあるものの列でした。以前は、カードデッキを提出するために行く場所があり、白衣のナチがそれを取り去り、暇なときにホッパーにカードを入れていました。実行時間はわずか数分または数秒です。人間の処理時間はしばしば数時間でした。
すぐに

4
完全なクリーンアップと再構築に数十分かかる現代のC ++プロジェクトを見てきました。ディスクスワップの代わりに、OSを介して仮想メモリページを自動的に実行しています。最近、コンピューターが非常に進歩しているとみんなが言い続けるのはなぜですか?=)
パトリックヒューズ

回答:


29

絶対に。80年代前半のZenith Z100コンピューター用のMicrosoft C(バージョン1.0)を5.25 "360Kフロッピーディスクで提供していました。Z100にはハードディスクがなかったため、切り替え時にフロッピーを頻繁に交換する必要がありました。数分間のコンパイルとリンク時間は珍しくありませんでした。2MB(はい、メガバイト)のメモリ拡張ボードに500ドルを支払ったので、すべてのファイルをRAMディスク。これにより、時間は約30秒に短縮されましたおかしい...当時はプログラミングが楽しかったので、実際に楽しんでいます。


+1しかし、私は反対の気持ちを持っています。あなたのanwserプログラミングを読んだ後、今日は突然楽しくなりました。
サイモンベルゴ

Microsoft C 1.0は、実際にはラティスCの再パッケージ化バージョンでした。AFIK、ラティスCは最初のMS-DOS Cコンパイラでした。2つの別々に実行されるコンパイラパスが必要でした。
オールドファート

1
わあ!2 MB!それは当分の間巨大でした。
システムダウン

私はIBM PCでTurbo C 1.0を使用しました(正しく覚えていれば本当にATです)が、それほど悪くはありませんでした。しかし、それらはより高速なマシンでした。
ロボット

9

おそらく本当です。

初期のホームコンピューティング(ホビエストではなく、子供/親)のマシンにはハードドライブさえありませんでした。

私の両親はOSが1枚のフロッピーにあるAmstradを持っていたので、フロッピーディスクの切り替えが必要なアプリケーション(ワードプロセッサは別のディスクにあった)を選択して実行できます。特殊なOSサービスが必要でした。

私はアムストラッドのパスカルのコピーを持っていました。エディターが1つのディスク上にあったことを覚えていますが、コンパイル中は、コンパイルプロセスが継続するため、disk1とdisk2の間で前後に切り替える必要がありました(プロセスの特定のポイントでOSディスクへの切り替えが必要な場合もあります(ただし、必ずオフにしてください))。

OS全体が単一の3.5フロッピーディスクに収まった古き良き時代(しかし、他にはあまりありません)。


4
完全に真実。「ライトスピードC」コンパイラがマッキントッシュ用に、「ターボC」がMS-DOS PC用に登場したとき、シングルパスで実行されたので、私たちは興奮しました。
S.Lott

3.5?私の家族のアムストラッドは2.5"フロッピードライブを持っていたそしてはい、CP | Mは4のセットのディスク1にあった、およびロゴは、私がそこにあった他に何覚えていませんディスク4にあった。。
ピーター・テイラー

@ピーターテイラー:あなたは間違いなく正しいでしょう。昔(こんな感じです)です。
マーティンヨーク

1
私にとっては問題ではありませんでした。Cを学んだとき、21 MBの大きな大きなハードドライブがありました:
dan04

1
@ dan04-集合芝生を下車します。いまいましいホイッパースナッパーとその派手なシャンパンハードドライブ.....;)
システムダウン

6

フロッピーディスクは1971年に導入されました(つまり、8インチフロッピーディスク)が、70年代半ば(5.25インチディスク)まで普及しませんでした。Cは1973年からのものであるため、答えは主に「最初のバージョン」と呼ぶものと、コンパイルコンテキストが何であるかに依存すると思います。これらの変数を考えてください:

  • 使用済みライブラリ。現在のディスク上にないライブラリをコンパイルするときは、間にフロッピーディスクを変更する必要があります。
  • プログラムの複雑さ(「Hello world」は「Norton Commander」と同じではありません)
  • ハードウェア(個人的には、ほとんどの場合、メインフレームまたはミニコンピューターで深刻なコンパイルが行われたと思います)

結局のところ、最近では、コンパイルにはまだ数分かかります-ハードウェアとプログラムの複雑さの間のトレードオフを調整するだけです。フロッピーディスクの部分だけは:-)ではありません。

また、70年代の多くのコンピューティングはまだ端末メインフレームの構築で行われていたため、フロッピーディスクを変更することはおそらくありそうにありません(少なくともビジネスプロダクションのコンテキストでは。 「言語」。


5
「最初の」バージョンはフロッピーでは実行されませんでした。AT&TのハードディスクベースのPDP-11システムでした。ただし、フロッピー(CP / M、MS-DOSなど)を搭載したコンピューターの最初のバージョンは管理が非常に困難でした。
S.Lott

60年代のフロッピー(リムーバブルディスク)を見たことを覚えています。全長4フィートでした。それらは合板に取り付けられたので、研究室を転がすことができました。私が覚えているように約5Kを開催しました。
マーティンヨーク

コンパイラーの実行ごとに1つを置き換える必要はありません!その写真を見てみたいです:-)。
-vstrien

6

私が最初にCを習得したのは、80年代後半のCommodore 64(そう、コンパイラーがありました)でした。正しく思い出せば、コンパイラ/エディター/リンカーは1つのディスクにあり、ソースは別のディスクにあり、コンパイル段階で少なくとも1回はスワップする必要がありました。もちろん、C-64では、常にスワップします。

その価値については、私はまだそのコンパイラのボックスとドキュメントを持っています。数年ごとに懐かしい読書が楽しめます。


2
また、1984年にCommodore 64でCを学びました。コンパイル中にフロッピーを交換したことを非常に明確に覚えています。私はAbacusのコンパイラを使用していたと言いたいのですが、それを正しく覚えていないかもしれません。
クリントミラー

@クリント、あなたが正しいと確信しています。それが箱の名前です。
DevSolo

@Clint:私は同じコンパイラーを持っていました。Commodore 64は、プログラミングを学ぶのに素晴らしいコンピューターでした。本当にクールなことをするのに十分なほど高度でしたが、やり取りするのに必要なすべてのハードウェアを理解できるほど簡単でした。これは、当時の高レベルの抽象化レイヤーがなかったために必要でした。
ダンク

6

私の最初のCコンパイラは、CP / Mを実行しているTRS-80モデル4に搭載されていました(ROMに永続的にマップされた低メモリ位置を持たない、適切に動作する最初のモデル)。最初のドライブのディスクにCP / Mが必要でした。

使用しているエディターで作業を終えたら、実行する前にプログラムをコンパイル、アセンブル、リンクする必要がありました。それぞれが独自のプロセスであり、コマンドラインで開始されました。コンパイラ、アセンブラ、およびリンカがすべて1つのフロッピーに収まるわけではありません。(IIRC、アセンブラーとリンカーは一緒に適合します。)

したがって、プログラムとエディターをCP / Mシステムディスクに配置し、コンパイラーとアセンブラー/リンカーディスクを交換します。

システムディスクを使用せずに実行できるプログラムを探していましたが、少しバッチファイルを作成してコマンドライン呼び出しを自動化できるように設定する計画がありました(もう覚えていません)。しかし、私は決して従いませんでした。

そのシステムを使用しようとした後、私はCをあきらめ、Pascalに数年間戻りました。


おそらくUCSD P-system Pascal?
すぐに

2
@quickly_now:Pコードにコンパイルされたものですが、UCSDとして請求されませんでした。当然、私は何十年も前にそれを取り除き、それについてはほとんど覚えていません。Turbo Pascalを手に入れたとき、私はそれをほとんど忘れていました。
デビッドソーンリー

5

私が高校にいたとき(1989-1990)私たちはリンゴIIでパスカルをやっていて、それは遅かったです。100行程度のプログラムを書くことができたので、コンパイルすると数分かかりました。プログラムを実行する前に、コンパイル中にメンズルームに行く時間があることを覚えています。

約半ばでその用語が使われ、Mac SEが手に入りました。パスカルの方がずっと良かったと思う。


2
Mac SEについて言及する場合は+1。Mac SE用に20MBの外付けハードドライブを購入したことを覚えています。大きすぎて、Mac全体がその上に座っていました。
哲学者

私は内部を持っていましたが、私もそれらの1つを持っていたかもしれません。とても素敵なデザイン。
ザカリーK

5

私の友人の父は、当時は著名なプログラマでした。彼はコンパイルの結果を数日、時には週を待つのに疲れました。主に自宅で仕事をし、プログラムを書き、カードを打ち、運転し、オペレーターに箱を渡し、彼のコードが他のすべての人よりも重要であると主張して待っていました。

時々、コードがコンピューターに届かないことがありました。私の友人は彼の父親が本当に怒っていたという話を私に話しました。彼は人生のずっと後までなぜ本当に理解したことはありませんでしたが、硬い紙でいっぱいのこの箱が楽しいように見えました...ちょっと彼らの穴もいっぱいです!!!

ある日、彼は経営陣に議論を引き継いだ。彼は、彼らが彼の家にミニコンピューターを届けたので、良いケースを作ったと思う。言うまでもなく、コンピューターはほとんどのリビングルームを占めていたので、もちろんリビングルームは立ち入り禁止になっています。

そのため、はい、コンパイルのステージ間でディスクを交換することは明確な可能性であり、それが以前に利用可能であったものからのVASTの改善であったと私が信じるとき!!!

20年ほど待つだけで、誰かが次のような質問をすることを想像できます。

以前は、キーボードを使用してコードを文字ごとに入力する必要があったのは本当ですか?


3

私はCについては知りませんが、しばらくの間、Microsoft Fortranコンパイラを2回使用していました。それだけでなく、間違って実行されたページ長のプログラムがありました(ソースコードが正しいと確信しています)。これはインターネット前の日であり、PCは私の雇用主のものでした。PCを持っていることはまだ素晴らしいことでした。フロッピーに作業を入れて家に持ち帰って編集することができました。そのため、翌日仕事に着いたとき、手書きのメモではなく、編集済みのプログラムをすでに持っていました。

はるか以前の日でさえ(私はプログラミングスプリング70を開始していました)、コンパイラはバッチ処理メインフレームOS上の単一のJCLコマンドでした。上記のように。キーパンチを待って、ホレリスカードをパンチしました。次に、それらをウィンドウからオペレーターに渡しました。PNC(基本的にアカウント番号/パスワードを含むパンチカード)の色によっては、1〜24時間後に結果が返される場合があります。低レベルの学生は、その後の転換期を迎えました。「hello world」の割り当てを2週間で完了させるのは本当に大変でした。数年後、私はパートタイムのプログラミングの仕事に就き、夜はコンピューターセンターで時間を過ごすことができました。私たちの中には、カードリーダーに自分で餌を与えることさえできる人もいます。その後、所要時間はわずか数分です/しかし、夜遅くまでしかできませんでした。

そのため、長い間、コンパイラは主にメインフレーム(非常に大規模な組織が所有する数百万ドルのクラスのマシン)のためのものでした。また、周囲の数台のミニコンピューターは、しばしば奇妙でトリッキーな方法でプログラムする必要がありました。私は地震計をデジタル化するために1台のミニコンピューターを使用しました。OSを起動するのに紙テープをガイドするのに約10〜15分かかり、デジタイザテーブルで作業を行います。


2

はい、確かに。古いCP / MマシンではCを使用せず、CB-80を使用しました。コンパイルされたBASIC。(そして、はい、それはかなり恐ろしかったです)。Heath / Zenith Z-89で、それぞれが89Kを保持するフロッピードライブを2つ搭載。

単一ディスクのコンパイルは非常に恐ろしく、忘れる場合がありました。ディスクの交換が多すぎます。2フロッピードライブは豪華でした!一方のソース、他方のコンパイラ。フロッピーを入れたり外したり、頭がぶらぶらしたりしながら、マシンが「clang clang clang」になっている間に、コンパイルを行ってお茶を飲みます。

ボスは、約18x18x8インチの5 MBのハードドライブを購入し、個別に電源を供給し、約4フィートのリボンケーブルでH89の背面に取り付けました。

ああ、スピード!そして容量!5 MBのストレージ。


1

Cについては知りません(最初のCコンパイラはハードドライブから実行され、高速ではありませんでした)が、最初に使用したマクロアセンブラー(C64)ではフロッピーディスクの切り替えが必要でした(1つはアセンブラーをロードし、もう1つはコード)、システムの構築に20分以上かかり、数か月の開発の後、フロッピーディスクドライブとマザーボードの両方が過熱して死亡しました。


1

1988年の大学= PC上のFortran、8088 512K(K !!)のRAM、および1つのフロッピードライブコンパイルには20〜30分かかりました。新しい720Kの1つがあったので、フロッピーを交換する必要はありませんでした。

Sun3(68030 1Mb ram)およびクラス全体用の24 vt100端末。


1

私の時間の前に、私は思う。私の最初の「本当の」プログラミング(とにかくPC上)はCOBOLでした。当時はIBM PCを使用していました。彼らは2台の360kフロッピードライブを持っていました。1つにはコンパイラがあり、もう1つにはソースコードがありました。

私の簡単な大学のプロジェクトでさえ、それらのフロッピーで実行するのに文字通り15分かかったことを知っています-コンパイル中にカフェテリアにコーヒーを求めて走りました。それから、最終プロジェクトのために、私は私の仲間の家でそれに取り組みました。彼は、ハードドライブと呼ばれる10メガバイトの新しいマシンを手に入れたところです!プロジェクトは1分以内にコンパイルされました。それは私の心を完全に吹き飛ばしました。


ほとんどの場合、ディスクバッファが設定されていません。ほんの数人が不思議に思った。

1

古い128K Macでさまざまなアプリケーションのためにフロッピーダンスをしなければならなかったので、詳細を説明することはできませんでしたが、これを少しの間疑いません。それがBASICインタープリターが初期のパーソナルコンピューターでそれほど普及している理由の一部でなくても、驚かないでしょう(複数のパス、シンボルテーブルなどは必要ありません)。

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