Dinosaur

Joined 24 August 2022
Line 45:
More effective speedups beckoned. I modified my interpreter to replace the Fortran code that loaded and decoded the opcode by certain nonsense statements, then, once the compiler had produced the machine code card deck, replaced the card bearing the rubbish code with one containing choice IBM1620 machine code operations (of just the same size) that performed those critical steps much faster. The payoff was an advance from about five to fifteen AMI operations a second. A fellow the year ahead of me had done likewise, and his interpreter ran at thirty steps a second. Thus began early a relaxed attitude to code twiddling and disdain for those who would prevent it.
 
DespiteBy now I was quite clear on the distinction between source code (as in COBOL) and compiled code, but despite all these interpreters, I still couldn't work out how Fortran compiled FORMAT statements, especially since different WRITE statements might use the same FORMAT statement. Was each WRITE statement compiled with reference to its named FORMAT statement? Surely that would be very messy...
 
During this period the console typewriter flung the slug for the letter W from its key and we had to adjust our programmes to use VV instead, much to the amusement of our lecturer Gary Tee who noted that we were reversing a millenium-old development in orthography.
 
Over the Christmas and summer holidays I gained money instead of milkshakes: employed by the computer centre to write a data-checking system in Fortran IV, plus my first introduction to IBM1130 assembler, under the tutoring of John Nevil Brownlee, the director of the computer centre. The objective was to devise routines that would store the data in arrays as records in a disc file, with later random retrieval and modification. Although Auckland's IBM1130 had the maximal storage allowance of 32768 16-bit words, there were those for which that was not enough. An assembler routine could gain access to the free disc space whereas ordinary file access, as via Fortran, could only work with fixed-size pre-allocated file storage areas. This introduced me to the notion of the "end" part having a name corresponding to the "begin" part, as might these days appear as END FUNCTION FACT, or IF ... END IF, or DO I ... NEXT I (in BASIC, but not elsewhere, alas), and to the idea of having a running commentary explaining the workings of the statements, off to the side so as not to impede sight of the statements and their shape. But the slowness of the offline card to typewriter listing process (and its noise!) strongly discouraged verbosity, and my listing of my AMI interpreter has not a single comment...
 
I now was quite clear on the distinction between source code (as in COBOL) and compiled code.
 
==Metastasis==
1,220

edits