Fortran 66 was the pinnacle as a no-nonsense practical programming language. No semicolon cancer, no fancy brackets, just code that looks like code. Beautiful (in a nerdy kind of way, by today’s standards).
What about assigned goto? hollerith?equivalence? Please look at the following:
C THE CALLEE
SUBROUTINE X(I)
GO TO I
END
C THE CALLER ASSIGN 10 TO J
CALL X(J)
C THIS IS NEVER REACHED STOP 10 WRITE(3,100)
100 FORMAT(8H THIS IS)
END
Why would this work? Because recursive calls are not allowed, There should NOT be a stack. So allow rather arbitrary jumped around (setjmp/longjmp) is um... ok?!? And what happens if a normal integer is passed to that code? (and it is separately compiled). Yikes.
C THE CALLEE
SUBROUTINE X(I)
GO TO I
END
C THE CALLER
ASSIGN 10 TO J
CALL X(J)
C THIS IS NEVER REACHED
STOP
10 WRITE(3,100)
100 FORMAT(8H THIS IS)
ENDYou got me by a major release. My introduction to Fortran was Fortran 77 on an antiquated IBM mainframe (event at that time).
Loved it, even if I could never remember what column I needed to use :-).