User:Dinosaur: Difference between revisions

Content added Content deleted
Line 31: Line 31:
Once we had bootstrapped our comprehension to this higher level, the course moved on to the likes of writing assembler programmes to calculate sin(x), etc. with Tschebychev polynomials used to spread the accuracy more evenly and with fewer terms though odder coefficients. This computer was actually manifested via an interpreter on an IBM1130. We were also introduced to Fortran IV, and could have actual operating access to its predecessor, an IBM1620 which worked in Fortran II. This computer's electronics were discrete transistors on printed circuit boards - I missed out on "first generation" valve electronics for computers and the still earlier electro-mechanical devices, though we did have access to a cardpunch/printer whose electro-mechanical workings could be programmed via a plug board, and the Physics lab offered a Friden electric-powered mechanical calculator and like everyone else, I tried out dividing by zero. Whirrrr... Thus, I am a dinosaur of the Jurassic period, not the Triassic.
Once we had bootstrapped our comprehension to this higher level, the course moved on to the likes of writing assembler programmes to calculate sin(x), etc. with Tschebychev polynomials used to spread the accuracy more evenly and with fewer terms though odder coefficients. This computer was actually manifested via an interpreter on an IBM1130. We were also introduced to Fortran IV, and could have actual operating access to its predecessor, an IBM1620 which worked in Fortran II. This computer's electronics were discrete transistors on printed circuit boards - I missed out on "first generation" valve electronics for computers and the still earlier electro-mechanical devices, though we did have access to a cardpunch/printer whose electro-mechanical workings could be programmed via a plug board, and the Physics lab offered a Friden electric-powered mechanical calculator and like everyone else, I tried out dividing by zero. Whirrrr... Thus, I am a dinosaur of the Jurassic period, not the Triassic.


Later that year I wrote an interpreter for the AMI system for the IBM1620, and thereby won four milkshakes from a friend, Michael Dowling, who took the AMI course the following year and used my programme for test runs. On one of his assignments, he had difficulty and test runs were facilitated by the immediate feedback. Indeed, by flicking certain switches on the computer's console, trace output for each step could be elicited, hammered out at ten key whacks a second on the heavy-duty console typewriter, there being no lineprinter for this installation. I happened by, and the discussion went somewhat as follows:
Later that year I wrote an interpreter for the AMI system in Fortran II for the IBM1620, and thereby won four milkshakes from a friend, Michael Dowling, who took the AMI course the following year and used my programme for test runs. On one of his assignments, he had difficulty and test runs were facilitated by the immediate feedback. Indeed, by flicking certain switches on the computer's console, trace output for each step could be elicited, hammered out at ten key whacks a second on the heavy-duty console typewriter, there being no lineprinter for this installation. I happened by, and the discussion went somewhat as follows:


"It will work." "No, it won't" - first milkshake.
"It will work." "No, it won't" - first milkshake.
Line 39: Line 39:
"I suppose it won't work." "Yes it will!" - this time, double milkshakes.
"I suppose it won't work." "Yes it will!" - this time, double milkshakes.


Later on, 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.
Later on, 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. 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 Gary Tee who noted that we were reversing a millenium-old development in orthography.
Over the Christmas holidays I gained money instead of milkshakes: employed by the computer centre to write a data-checking system in Fortran, plus my first introduction to IBM1130 assembler.

Over the Christmas 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. I now was quite clear on the distinction between source code (as in COBOL) and compiled code.


==Metastasis==
==Metastasis==