my first program
taught me a lot about
the errors that i was
going to be making
in the future, and also
about how to find
errors. that’s sort
of the story of my
life, making errors
and trying to recover
from them. i try to
get things correct.
i probably obsess
about not making too
many mistakes.
algebraic formula on cards and feed
the cards into the machine. The lights
spin around for a few seconds and then
out come machine language instructions that set X1 equal to X2 + X4. Automatic programming coming out of
an algebraic formula! Well, this blew
my mind. I couldn’t understand how it
was possible to do this miracle. I could
understand how to write a program
to factor numbers, but I couldn’t understand how to write a program that
would convert algebra into machine
instructions.
a mathematical problem, I translate it
into formulas, and then the formulas
are the reality.
he discovers computers, and
how hard programming is.
I wrote my first program for the IBM
650 [a vacuum tube magnetic drum
computer from the 1950s], probably
in the spring of my freshman year, and
debugged it at night. The first time I
wrote the program, to find the prime
factors of a number, it was about 60 instructions long in machine language.
They were almost all wrong. When I
finished, it was about 120 or 130 instructions. I made more errors in this
program than there were lines of code!
My first program taught me a lot
about the errors that I was going to be
making in the future, and also about
how to find errors. That’s sort of the
story of my life, making errors and trying to recover from them. I try to get
things correct. I probably obsess about
not making too many mistakes.
it hadn’t yet occurred to him
that the computer was a general
symbol-manipulating device?
No. That occurred to Lady [Ada] Lovelace, but it didn’t occur to me. I’m slow
to pick up on these things, but then I
persevere.
I got hold of the source code for IT.
I went through every line of that program. During the summer we typically
had a family get-together on a beach on
Lake Erie where we spent time playing
cards and playing tennis. But that summer, I spent most of the time going
through this listing, trying to find out
the miracle of how IT worked. Okay,
it wasn’t impossible after all. In fact,
I thought of better ways to do it than
were in that program.
The code, once I saw how it happened, was inspiring to me. Also, the
discipline of reading other people’s
programs was something good to
learn early. Throughout my life I’ve
had a love of reading source materials—reading something that pioneers
had written and trying to understand
their thought processes, especially
when they’re solving a problem I don’t
know how to solve. This is the best way
for me to get my own brain past the
stumbling blocks. At Case I remember looking at papers that [Pierre de]
Fermat had written in Latin in the
17th century, in order to understand
how that great number theorist approached problems.
scholarship—reading source material.
I was a complete failure at passing this
on to the people that I worked with the
most closely.
at case he learns
about early compilers
For the IT (“Internal Translator”) program for the 650 you would punch an
But it’s been hard to
communicate the love of reading
historical programs.
I would say that’s my major disappointment with my teaching career.
I was not able to get across to any of
my students this love for that kind of
he graduates from case
and becomes a professional
compiler writer while traveling
to the california institute of
technology for graduate school.
I had learned about the Burroughs 205
machine language, and it was kind of
appealing to me. So I made my own