In meiner Klasse Programming Language Concepts wurde nebenbei erwähnt, dass Fortrans ursprüngliche Kontrollstrukturen unzureichend waren. Es wurde angedeutet, dass sie den Maschinenanweisungen für die IBM 704 zu ähnlich waren. War dies der Fall? Was genau hat sie unzureichend gemacht?
programming-languages
history
Weltingenieur
quelle
quelle
Antworten:
Nun, mal sehen, frühe Versionen von Fortran hatten
IF
GOTO
undDO
.Es gab verschiedene Variationen von IF und GOTO, einschließlich ASSIGNED GOTOs und berechneter GOTO, die einer CASE-Anweisung ähnelten.
Abgesehen von den DO-Schleifen waren alle Steueranweisungen Variationen von IF und GOTO, die hartcodierte Anweisungsnummern enthielten. Das Ergebnis waren mehr Fadennudeln als Spaghetti.
Die DO-Schleife selbst war insofern problematisch, als sie ausschließlich mit dem Test am unteren Ende der Schleife "do till" durchgeführt wurde. Daher gab es keine Möglichkeit, die erste Iteration zu überspringen, außer ihr eine weitere "IF (cond) GOTO 9999" vorauszugehen. .
Da die meisten Kontrollstrukturen "GOTO-Leinennummer" waren, würde jede wesentliche Änderung des Codes viele fehleranfällige Änderungen der Zielzeilennummern mit sich bringen.
Die DO-Schleife musste mit einem GOTO ergänzt werden, um daraus ein DO WHILE zu machen.
Die frühesten Fotrans hatten ein "GOTO" der Form.
Was bedeutet, wenn VAR <0 ist, dann gehe zu Anweisung 100. Wenn = 0, dann Anweisung 200, wenn> 0, dann Anweisung 300.
Im Großen und Ganzen war es kein schlechter Versuch. Die Tatsache, dass Sie Formeln schreiben konnten, die denen ähnelten, die Ihr Professor an die Tafel geschrieben hatte, war das Killer-Feature von FORTRAN. Der Programmablauf musste einige Jahre warten, um aufzuholen.
quelle
Das Schlechte an FORTRAN IV war, dass alle Kontrollstrukturen (einschließlich Schleifen) von Etiketten abhingen. Sie sorgten also für unstrukturierte Kontrolle. Sie waren zu mächtig. Wie wäre es zum Beispiel, in eine Beschriftung innerhalb einer Schleife zu verzweigen und später wieder zu verzweigen ...
quelle