The definition of "passable compiler" in 1992 must have been very different from what it is today; while third year students write interpreters and compilers, nobody would call them useful or passable.
It was.
11–20 of 56 posts
The definition of "passable compiler" in 1992 must have been very different from what it is today; while third year students write interpreters and compilers, nobody would call them useful or passable.
It was.
> Now a question: Since we're obviously thousands of times better at producing compilers than we were fifteen years ago, so much so that a single undergraduate can write a passable one in four months, why hasn't IBM invested millions of dollars and hundreds of programmer-years to produce a super FORTRAN I compiler that's thousands of times better than the FORTRAN H compiler? s/FORTRAN I/Mythos/ for the 2026 version o…
> Now a question: Since we're obviously thousands of times better at producing compilers than we were fifteen years ago, so much so that a single undergraduate can write a passable one in four months, why hasn't IBM invested millions of dollars and hundreds of programmer-years to produce a super FORTRAN I compiler that's thousands of times better than the FORTRAN H compiler? s/FORTRAN I/Mythos/ for the 2026 version o…
Intel Fortran Compiler and IBM XL Fortran compilers are still developed and very well funded
How did we get so much better at writing compilers? Was it a better understanding of how to make syntax trees with ADTs etc?
- not writing compilers in assembly
- not requiring overlays
- knowing how previous compilers produced fast code (Web search doesn’t give me conclusive answers, but that Fortran compiler may have been the first to do loop unrolling and common subexpression elimination)
- having way more memory, CPU and disk available
- possibly: spending less time looking at optimizations. I expect IBM tried hard to make the output of their compiler to match the performance of hand-written assembly
The best link I could find is https://en.wikipedia.org/wiki/Fortran#FORTRAN_IV:
“In particular, the FORTRAN H compiler played an important role in the development of certain kinds of optimization approaches, such as allocating a specific set of registers to hold the values of variables while in a loop. Overall, the compiler had three levels of possible optimization, as Fortran compiler developers had learned early on that the ability to turn off optimization was a necessity, since it drove up compilation times considerability for program runs that often were not going to work anyway. Even with the larger amount of main memory available to it, the FORTRAN H compiler was still organized via a number of overlays.”
I agree with the overall point of the article, but I feel compelled to be _that guy_ and point out that most of IBM's systems programming involved various dialects of PL/I, not Fortran, and they went through a bunch of different iterations on those compilers and their code generators.
Beautifully written but when the lack of a better compiler gets attributed to rational actions my brain glitched. That’s not fitting my mental model of how big corps operate at all! Occam’s razor IBM didn’t invest in Fortran I because the internal political environment at the corporation didn’t have the incentives aligned to do so. This is completely orthogonal to whether they could have used a better compiler or not…
Letting pride outvote usability is an insane business decision.
Fortran H was faster than the fastest punchcard feeder of the time. That bottleneck is unfortunately long gone, without the same magnitude of improvement on the other side. (Physical limits, amazing optimisations, etc.) Last time I was working with CCE, I was looking at blistering runtime speeds, but six or seven hour compiles. Huge codebase (40mil+ LoC), and the optimisations were great, but not exactly a fantastic…
? You are pro-bottleneck?
Dupe: https://news.ycombinator.com/item?id=48622814
This submission was made two days earlier than the one you linked to, it just came back through the second chance pool. Not a dupe.
One was submitted earlier. The other reached the front page earlier.