かしわざわざと行番号は全くないのでしょうか。[定休日]

StackOverflow https://stackoverflow.com/questions/541421

  •  23-08-2019
  •  | 
  •  

質問

ときに何か書いてもらえるように基礎る必要がある。のように:

10 PRINT "HOME"
20 PRINT "SWEET"
30 GOTO 10

そして、もうひとつ:ちらのアイデアの使用の行番号は全くないのでしょうか。そんな迷惑が、なかなかの"echo"の開発(pun用)。

役に立ちましたか?

解決

当時のアイデアは、あなたが簡単に適切な行番号を使用して、プログラムのいたるところにコードを追加するということでした。それは誰もが行番号10、20、30を使用する理由です。..ので、左の余地がある。

10 PRINT "HOME"
20 PRINT "SWEET"
30 GOTO 10
25 PRINT "HOME"

BASICは、のために利用可能であった最初のインターフェイス上で、何の光沢のあるエディタ、viやemacsのようではないとしても、何か(またはDOS編集あわや、)ありませんでした。あなただけのコンソール上でプログラムをプリントアウトでき、その後、新しい行を追加したり、最初に適切な行番号を与えることによって、それらを置き換えます。 (あなたがディスクにコピーを保存することができますが、プログラムがメモリに保存された)あなたは、今日まで使用されているあなたは、カーソルで「ファイル」をナビゲートできませんでした。

そこで行番号は悪名高いGOTOのラベルとして必要とされただけでなく、実際にあなたが編集しているプログラムの流れのどの位置にインタプリタを伝えるために必要な。

他のヒント

これは、ルーン、ルーンの歴史を持っています。

行番号は、実際にはBASICプログラミング言語の元のバージョンだったといわゆるダートマスタイムシェアリングシステムの不可欠な部分だったダートマスBASIC、から来ています。 DTSSは、対話型のコマンドライン以外の何物でもなかった初歩的なIDEを、持っていたこと。

だから、同じ番号のいずれかの以前に格納された行を置き換える、プログラムに追加された、この「IDE」の内側に型指定された、および行番号で始まるすべての行。何か他のものは、DTSSコマンドであると仮定し、すぐに実行されました。

VDT(ビデオ表示端末)のようなものがあった前に、パンチカードにプログラムされ、私たちの古いタイマー。パンチカードは、シーケンス番号の列72〜80を予約 - あなたのカードデッキを落とした場合、それらはすべてが秩序の外に出た、あなたはそれらのシーケンス番号に基づいてカードを注文するだろうカードソーターでデッキを置くことができます。多くの点では、BASIC行番号は、これらのシーケンス番号に類似していた。

BASIC世界のもう一つの利点は、それが実行されたとして、昔にBASICが解釈されたということです。枝のラベルではなく、順次行番号を使用すると、すべてのラベルとその場所をピックアップして、最初のパスを必要とする、あなたは行番号を使用しているかのようインタプリタは、それが目的地のために前方または後方スキャンを開始する必要があるかどうかを知っている。

をいただいた日から2次元エディタのようにemacsする。また、コマンドライン。

プログラムされたメモリとしてしまうとタイプシングルコマンドライン編集シングル。

また、Unix神なにができるのでは、何かが基本的なC-64,VIC-20、TRS-80まで上書きします。

では、セッションのような:

$10 PRINT "Hellow World"
$20 GOTO 10
$10 PRINT "Hello World"

現在のプログラムが機能しなくなっていたのを修正

一部の古いメインフレームもライン端末な画面になります。全体セッション印刷 論文インク!

"誰?"発明者、Kemeneyとカーツになります。

の返信を読んだ後、私はhref="http://en.wikipedia.org/wiki/Dartmouth_BASIC"は「ダートマスBASIC」のWikipediaのエントリをrel="noreferrer">、とした知って驚きます

  タイムシェアリングシステムは準備ができていた前に、

最初のコンパイラを作製しました。 CardBASICとして知られ、それは標準的なカードリーダベースのバッチ処理システムのために意図されていた。

だから、それはポールTomblinのように見える "四角を取得します"。

彼らは、BASICが由来した、FORTRANで始まりました。しかし、FORTRANで(GOTOの目標のような)他の行が参照する行だけが数字を必要としていました。 BASICでは、彼らは特定の行の編集を可能にした二次利用を、持っていた。

ポールTomblinの答えは、最も包括的であるが、私は誰もが基本的なプロジェクトの当初の目標の大部分は、タイムシェアリングを使用して、の初心者に優しいのインタラクティブな環境を提供することであったことを述べていない驚いています。 (「すべての学生のための普遍的アクセス」のカーツとKemenyのビジョンははるか先、この点での時間のだった。)

この目標を達成するために開発された基本的なシステムは、テレタイプASR-33(以降、他の)印刷端末を特色にしました。タイムシェアリング対応のOSに接続すると、これらは、編集や(パンチカードでの作業とは違って)対話モードでBASICプログラムを実行を許可しますが、彼らは、カーソル・アドレス指定をされていません。行番号は、プログラム文の順序を指定し、スクリーンエディタが存在しない場合に明確な編集を可能にするために、両方の初心者に優しい方法でした。 「ラインエディタ」のWikipediaのエントリはさらに説明し、カーツとKemenyは不可解を学習する初心者を温存するために感謝しなければならない理由は、これまで(などのUn * x「のED」など)ラインエディタを使用しようとしただ誰もが理解することができますこのようにテキスト編集に必要なコマンドシーケンスます。

戻る五十年代で、高いプログラミング言語は、彼らの初期の始まりにいたとき、何の端子、ノー編集、なしモニター(はい、いいえモニター)、ちょうどカードパンチャーと読者がにカードの内容を書き込み、読み出すために(ありませんでしたコンピュータのメモリ)およびプリンタ(印刷結果のために、自然に)。 その後、テープが導入されましたが、それはまた別の話だ。

各パンチカードは、独自の番号を持っていました。そのため、いくつかの理由がありました。純粋な順序でそれらを保つことから、実行の順序を決定します。各カードには、(今日の点で)1行のコードでした。以来、その時点で、if..then..elseようには構築物はなかった、または何等の変形、実行の順序は、何らかの形で決定されなければなりませんでした。だから、GOTO文が導入されました。彼らは、ループの基礎となりました。 )

:用語「スパゲッティ・コードは、」ひどく書かれたコードは、プレート上のスパゲッティのように、従うことが比較的困難だったので、またその期間から来ています

私はそれが各命令が他の命令によってにジャンプすることができるアドレスを持つアセンブラ、から来ていると思うと思います。

また、最初のコンピュータは、多くのメモリを持っていなかった、と(適切に行われている場合)、行番号を格納する2バイトのみをとります。ラベルを書き込むと、任意のジャンプコマンドで、その後、最初にそのラベルが定義されている場所で、より多くのメモリをとります。

最後に古き良き時代にどんな派手なエディタはありませんでした。唯一の「エディタ」は、コマンドがすぐに実行するようプログラムし、他のすべての一部である数で始まるすべてを処理する単純なコマンドライン・インタフェースでした。最も顕著な例は、コモドール64である必要があります。

基本の新しい方言はもはや行番号の必要性を持っていません。

Basicでは、あなたは行番号を持っていなかった場合、あなたはプリフォームすることができますか。

GOTO 10 

の行にジャンプするための方法、... 20年以上前に発見された良い方法だったこと!

今日、行はデバッグエンジンは、我々が行xxxに例外を持って、我々はすぐにそれにジャンプメッセージで私たちを送信するために作られているので、私たちは、エラー/例外をキャッチ助けて!

行番号のない世界を想像して...どのようにレポーターが行なしで支払うことができますか?

  

「今、あなたは小説を知っていることを、あなたはせいぜい50行で要約を記述する必要があります」

これを覚えていますか?でも、学校で私たちは、行番号を学ぶ!

それが発明されていなかった場合、我々はうまくそれを使用することができるように、誰かがすでに再発明します。)

BASIC必要な行番号のないすべてのバージョン。 QBasicをは、例えば、ラベルを支持しました。その後、GOTO(一瞬ダイクストラ「有害と考えられ声明へ移動」を無視して)とのそれらにジャンプできます。

答えは、すでに上記です。ポールTomblinは(警告zabzonkすると)それを書きました。

実は、私は「パンチカード」を言及していないすべての答えは、それはどちらもパンチカードやFORTRANに言及している場合、それは間違っている、不完全であることを主張するだろう。私は、これは私の両親は、(彼らはFORTRAN 66と77で開始)、定期的にパンチカードを使用し、その後80年代にBasicおよびCOBOLに移行し、両方の権利ので決定的であると言うことができます。

は、初期の頃には、ほとんどのプログラムは、パンチカードで入力しました。パンチカードは、通常、別々の命令カードであるラベル(JMP / JSRターゲット)と、順にカードごとに通常一つの命令を入力しました。

あなたのプログラムを編集するには、カードを交換します。

彼らは秩序の外に出た場合、彼らは自動化されたリーダーによって再配列決定することができたときに/ように、

その後の実装では、行の右端にオプションのシーケンス番号を追加します。

Fortranは左側に(COL 1-5)数値目標ラベルの両方を使用し、配列またはコメントを右に(73-80)に予備ブロックを残しました。

BASICが最初に書かれた場合は、

は、編集モードとして... FORTRANのラベル]フィールドに、左にシーケンス番号を移動するには、前のカードのメモリフットプリントを上書きできるようにすることを決めました。これは、対話型のdevの環境のためのものではなく、カードと同じようによく働きました。そして、カードは、様々な理由のためにいくつかの初期の実装で使用されていた。

に注意してください:多くのコンピュータは、右の1970年代後半を通じてカードリーダ、プリンタインターフェースでした。 「対話モードの基本が利用可能であったとしてもカントー、カードは、基本的なプログラムが頻繁に使用されたパンチ。多くは、単にIDEに供給されたので、彼らはまったく同じように働きました。最後に、「ファイル名を指定して実行」のカードを必要とするを含みます。このような場合には、一つは単にいくつかの変数の変化を再実行するための補正カードと別のランカードをタックことができ、同様に、複雑なプログラムでは、単に実行する前に、カードの修正行を追加することは誤ったカード自体を見つけるの貴重な時間を費やすことなく、問題を編集することが適切であった。

私は壁に

のようなものを書かれた、フューチュラマでロボット教会が好き
10 SIN
20 GOTO HELL

Speccy上では、行番号なしで行を編集することができませんでした。

ペアリングするとき、私は彼らは非常に有用見つけます。私は「本当にgetMoreBeer()すべきではない、ライン74上の?」、ライン私のペアはキーボードを持っているとき、私は言うことができるでポイントする必要はありません。

DOSの元編集者は、 EDLIN に呼ばれる素晴らしいユーティリティました。あなただけの単一の行を編集することができます。さらに興味深いBASICあなたの多くのバージョンでの生活は、オーダー、ライン10、20、30、25、5のうちの行を入力することができようにするには、実行は出現順ではない行の行数であることでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top