Post by Juergen IlseHallo,
Post by Thomas KoenigBASIC ist auch die beste Programiersprache,
weil es einen GOTO Befehl gibt.
COMEFROM ist viel besser, siehe "A Linguistic Contribution of
GOTO-less Programming", DATAMATION, December, 1973,
Oder halt, wie beim OS/360 FORTRAN IV G - Compiler implementiert,
als AT - Statement.
Dagegen ist BASIC Kinderkram.
Wie wir spaetestens seit dem Artikel "real programmers don't use pascal"
wissen, hat in Fortran auch das arithmetische "IF" (das mit den drei
Ausgaengen) so einiges fuer sich (weil es Programme interessanter macht).
"hatte" ist vielleicht etwas präziser, seit 1991 ist es "obsolecent",
seit 2018 aus der Norm verschwunden.
Ich habe mir mal "Abstracting Away The Machine" besorgt, die Geschichte
von Fortran. Das ist absolut faszinierend, wie es aussah, als das Team
von Backus damals mit dem ersten Fortran-Compiler angefangen hat.
Damals haben die meisten Programmier Maschinensprache geschrieben.
Wenige haben Assembler verwendet, das hat wertvolle Maschinenzeit
verbraten und war für Weicheier. (Never mind the debugging).
Und der erste Fortran-Compiler hat es tatsächlich hinbekommen,
die Effizienz von handgeschriebenem Maschinen- bzw. Assemblercode
zu erreichen.
Das Team hat damals den basic block erfunden (einschließlich
reordering) und mit (wie wir heute sagen würden) strength
reduction, value propagation und dead code elimination operiert.
Die Registerzuteilung war auch exzellent (da hat man erst Jahrzehnte
später was besseres gefunden). Ein weiterer riesiger Schritt
war arithmetisch korrektes Parsen von Formeln wie a + b*c**(d+e),
allerdings viel komplizierter als heute (ohne Rekursion).
Und das alles in ca. 24000 Assembler-Instruktionen für den
ganzen Compiler, auf einer Maschine mit einem Akkumulator,
einem Hilfsregister und drei Indexregistern.
Die Leute hatten's echt drauf.