When Knuth and I were young - Part 2
- From: Charles Crayne <spamtrap@xxxxxxxxxx>
- Date: Sun, 20 May 2007 22:46:57 -0700
By 1964, Knuth had shown his genius in mathematics, earned his PhD, and
accepted a position at the California Institute of Technology, in
Pasadena. I, on the other hand, had been far less studious, not only
bored by traditional electrical engineering, but also seduced by
extra-curricular activities. As a result, I had dropped out of school,
and was working as an electronic technician at the radiation
laboratory, in the hills above the Berkeley campus, where -- among
other interesting experiences -- I partnered Dr. Edward Teller [the
so-called father of the H-Bomb] in a hand of bridge.
It wasn't that I had anything against communications technology. I was
an amateur radio operator (W6JUB) who build much of my own equipment,
but I fell into the trap of the Heidelberg cadets in "The Student
Prince".
["Although we get D Minus, it isn't on account of shyness. We cut the
lectures for their dryness."]
However, there is nothing like working in a sub-professional job (even
in such a high-tech environment) to make one appreciate the value of
that piece of paper which is traditionally called a "sheepskin".
In addition, the College of Engineering had finally added a computer
option to its curriculum. So, that fall, with the support of the head
of the nuclear chemistry department, I went back down the hill to
tackle my senior year.
For the first time in my college experience, I enjoyed every class I
took, and, as a result, got almost straight A's. [I have forgotten
which subject yielded the lone B.] But the course which I enjoyed most
was the one in which we designed our own, individually customized,
computers.
At the start of the course, each of us was given a deck of punch cards
which, when run, emulated an extremely simplistic computer, which, in
turn, processed its input data, and printed the results. Our task, as
the course progressed, was to learn about more advanced features, such
as index registers, and update our decks to incorporate those features.
The details of such implementations, including such basic elements as
the choice of op codes, were left entirely to us.
As strange as it may seem today, at that time, even the most senior
students were not allowed into the physical presence of the computer.
Instead, we had to enter our changes on coding sheets, and submit them
to the keypunch department. When we got the cards back, we added them
to our decks, and submitted them for execution. The result was that we
were lucky to get even one test run per day, and therefore, "bench
checking" was extremely important.
[This cumbersome process was still common throughout most of the
1960's, which is why programming productivity studies from that decade
are all but meaningless today -- but that is a topic for another
thread.]
The emulator itself was written in Algol, and the input to the emulated
machine was, of course, whatever machine language we had created.
Naturally, we got no instruction in how to program our own machine
language, but neither did we get any instruction in Algol. I no longer
remember for sure, but we might have gotten a handout on the language
syntax, but the instructor clearly considered programming in Algol to be too
trivial to waste any classroom time on.
For our final project, I invented a trivial HLL of my own, which I
called AB Talk, wrote a trivial compiler for it in my own machine
language, and used it to compile and run a trivial AB Talk test
program. I still remember putting the finishing touches on it while
flying to a job interview with Sandia. [I also recall coming down into
Albuquerque in the midst of a sandstorm, but that too is a story for
another day.]
In the next installment, I will relate how I became a member of a team
which built a real-life mainframe computer, and about a practical joke
that may have gone a bit too far.
-- Chuck
.
- Follow-Ups:
- Re: When Knuth and I were young - Part 2
- From: Bjarni Juliusson
- Re: When Knuth and I were young - Part 2
- Prev by Date: Re: [Clax86list] x86 Linux assembly with NASM, segfault out of nowhere?
- Next by Date: Re: [Clax86list] When Knuth and I were young - Part 1
- Previous by thread: x86 Linux assembly with NASM, segfault out of nowhere?
- Next by thread: Re: When Knuth and I were young - Part 2
- Index(es):