Hacker News new | past | comments | ask | show | jobs | submit login
The Fortran I Compiler (2000) [pdf] (stanford.edu)
71 points by Bostonian 16 days ago | hide | past | favorite | 12 comments

A couple of small somewhat-related past threads:

In search of the original Fortran compiler (2017) - https://news.ycombinator.com/item?id=23497895 - June 2020 (3 comments)

A 63-pass FORTRAN compiler for the IBM 1401, illustrated - https://news.ycombinator.com/item?id=9289070 - March 2015 (8 comments)

In summary the source has lost only fortran II left ... really?!!

Don't forget FORTAN's influence on BASIC. See https://www.gamasutra.com/view/news/216469/A_basic_history_o...

Fortran is the first imperative high level language and it had impact on almost all the computer languages created after that.

Well, certainly the first to be widely implemented. After the original Fortran for the 704, there were compilers for a bunch of other machines, not always using the "Fortran" name. And, per this article, the first to have a meaningful optimizer. (Terms such as "basic block" first occured in 1957 technical papers on its internals.)

However, there were earlier languages which were at least high-level enough to support algebraic notation. Perhaps the first the compiler written by Laning and Zierler for the Whirlwind at MIT: https://en.wikipedia.org/wiki/Laning_and_Zierler_system (which was thought for a while to have been an inspiration for Fortran -- but the head of the Fortran project, John Backus, later found notes from before Laning and Zierler published).

It was not just an influence on BASIC, but the raison d'etre, "It should be a stepping-stone for students who may later wish to learn one of the standard languages, such as FORTRAN or ALGOL."


Ah, just as I was contemplating giving up on the tangled mess that my own register allocation code is evolving into... Inspiring read. Thanks!

You could make a case that the dragon book held back compiler development by popularizing a number of second or third rate methods. Many old mainfrsme compilers used techniques a little too advanced to make it into the books.

Which techniques are these?

Older compilers use techniques across the board and are not based on a systematic theory.

There was one Fortran compiler from that era for the 1401 that made more than 50 'passes' to minimize memory use.

Today 'N passes for large N' is popular for experimental compilers, not to save memory, but because the passes themselves are easy to write. (At resource expense, and the danger that users will never be able to understand error messages.)

PL/I and Algol were targeting the space that C took over but had good and bad ideas that were abandoned, misunderstood, forgotten, etc. For instance the first Algol had no definition of how to do I/O which sounds terrible at first -- except today a C prog might throw away the stdlib like arduino does.

No the GP, but I would assume Fran Allen's work would be involved in that? Surely that had some impact on mainframe compilers.

Yes, but I'm curious which specific transformations and optimisations were specific to the mainframe culture. C compilers specifically were pretty crude for a while, but there was lots of other stuff going on (e.g. all the work on compiler optimisations for Lisp).

I'm not a fan of the Dragon Book, but I also don't think it held back much (although I'm not an expert on its societal impact). The older editions had very little about optimisations at all.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact