Beiträge von detlef im Thema „Warum kam der GO-Befehl ins BASIC rein?“

    Wenn man sich die BASIC-Programme alle so ansieht, kann man, denke ich, im Nachhinein sagen, dass man "GO TO" und "LET" getrost hätte weglassen können.

    Damit wollte ich nur sagen, dass man es so gut wie nirgends findet. Und das zeigt, dass diese Kompatibilität zu anderen Dialekten offenbar doch nicht wichtig war. Also eher aus der Kategorie "gut gemeint".

    Du weisst doch gar nicht, wieviele Basic-Programme schon in den 70er Jahren von anderen Systemen unter Microsoft-Basic laufen gelassen wurden. Es ging natürlich nicht darum, dass Microsoft-Programme auf anderen Systemen liefen sondern anders rum.

    Die Möglichkeit, den GOTO-Befehl im Commodore-BASIC auch als GO TO zu schreiben, stammt ursprünglich aus der Entwicklung von BASIC selbst. Das geht auf die allerersten Implementierungen von BASIC in den 1960er Jahren zurück. Der Befehl GOTO sollte intuitiv verständlich sein und das getrennte Schreiben GO TO sollte die Lesbarkeit und Klarheit verbessern, besonders für Menschen ohne Programmiererfahrung. GO TO erinnert eher an einen natürlichen englischen Ausdruck, was den Lernprozess erleichtern sollte. BASIC war ja als allererster Einstieg ins Programmieren gedacht.

    Mich hat vor allem das Token für das GO gewundert. Alle anderen Befehle haben Token im Bereich von 128 bis 162, das Token für GO ist 203. Das klang für mich stark danach, dass es erst nachträglich eingebaut worden ist.

    Inzwischen weiß ich, dass es im Commodore BASIC V1 noch nicht drin war. Die Erklärung, dass das die Kompatibilität zu anderen BASIC-Dialekten erhöhen sollte, klingt aber plausibel.

    Mit Basic 1 meinst du das Basic vom PET 2001? Da wird das GO TO vom Parser tatsächlich zu GOTO zusammengezogen und durch ein Token ersetzt.

    Die Tatsache, dass das in Basic 2 extra nochmal geändert wurde, zeigt, wie wichtig das GO TO genommen wurde. Das erklärt auch die hohe Tokennummer.

    Trivia: Das TO ist dasselbe wie vom FOR-TO-NEXT.

    Wenn man sich die BASIC-Programme alle so ansieht, kann man, denke ich, im Nachhinein sagen, dass man "GO TO" und "LET" getrost hätte weglassen können. Um das ROM voll zu bekommen, fallen mir zig andere praktische Befehle ein, bspw. Cursor-Positionierung für PRINT, RESTORE X oder DIR(ectory).

    Im Nachhinein ist man immer schlauer. Als das Microsoft-Basic entwickelt wurde, wäre ein inkompatibles Basic evtl. gar nicht gut angekommen.

    Einige frühe BASIC-Interpreter erlaubten GO TO, und andere akzeptierten nur GOTO. Das Commodore-BASIC (was ursprünglich ja von Microsoft-BASIC abgeleitet wurde) wollte durch diese Flexibilität sicherstellen, dass Programme aus anderen BASIC-Umgebungen leichter übertragen werden konnten.

    Und deswegen auch das LET.

    Und was mal drin ist, blieb halt dann drin. ;)

    Sonst wären die Basic-Versionen vom Commodore ja zu sich selbst inkompatibel gewesen. Es war schon das Ziel, dass man die Basic-Programme zu den Nachfolgerechner kompatibel blieben (PET -> CBM -> Basic 4 -> VC20 -> C64...).

    Nur von Basic 4 zum VC20 gab es einen Bruch, weil die Floppy-Befehle von Basic 4 wieder rausgeflogen sind. Die hätten aber auch keinen Sinn gemacht.