This link has an interesting discussion of "optimum programming" for an early machine, the IBM 650 Drum computer. Pages 79-89 discuss optimizing code in a way that is probably not relevant with computers today, but was 65 years ago.
(03-15-2020 09:16 AM)ijabbott Wrote: [ -> ]That reminds me of The Story of Mel.
Thanks Ian, that is interesting.
Dartmouth College, where the language BASIC was born in 1964, originally had an LGP-30 drum-based computer in 1959, and the students there developed a FORTRAN-like programming language as well as an ALGOL-like language on that machine. In 1964 Dartmouth received a GE-225 computer and the students developed BASIC on it.
Alan Turing was in favour of optimum programming, but it was always controversial: is computer time more valuable than programmer time? The answer changed as technology moved on. The Pilot ACE was, I think, the first instance.
Quote:The issue of optimum coding was hotly debated, and Turing's view was by no means unchallenged. While optimum coding enabled more computing to the pound-sterling, as it were, this came at the cost of greatly complicating the process of programming.
In his 1967 Turing Award lecture, Wilkes noted:
Quote:I felt that this kind of human ingenuity was misplaced as a long-term investment, since sooner or later we would have true random access memories. We therefore did not have anything to do with optimum coding in Cambridge.
- from
Alan Turing's Electronic Brain: The Struggle to Build the ACE, the World's Fastest Computer by Jack Copeland
More:
Quote:Turing came up with the brilliant idea of eliminating the effect of latency by having each instruction nominate the address of its successor. In this way, instead of placing instructions in successive memory locations, as in a conventional design, instructions could be placed in optimal locations, so that as one instruction finished, the next instruction would just be emerging from a delay line. The same could be done for operands, so that the time to access them could in principle be eliminated as well. This gave the Pilot ACE, with its 1 millisecond major cycle, a theoretical maximum speed of 16,000 instructions per second. Another innovation in the Pilot ACE was to have several short delay lines that could be used to hold the most frequently used operands in a program. This arrangement reduced the need to access the main memory for operands, and hence the need for their optimal placement; while this did not make the machine any faster theoretically, it greatly simplified programming. Even with this innovation, however, it was very difficult to get perfect optimization, and programs typically achieved about 5000 instructions per second. Nevertheless, this was very much faster than either the EDSAC or the Manchester Mark I, and the Pilot ACE used far less equipment than either of them.
(03-15-2020 09:16 AM)ijabbott Wrote: [ -> ]That reminds me of The Story of Mel.
I assumed that's what Don's link was going to be about.