a story lives forever
Sign in
Form submission failed!

Stay signed in

Recover your password?
Form submission failed!

Web of Stories Ltd would like to keep you informed about our products and services.

Please tick here if you would like us to keep you informed about our products and services.

I have read and accepted the Terms & Conditions.

Please note: Your email and any private information provided at registration will not be passed on to other individuals or organisations without your specific approval.

Video URL

You must be registered to use this feature. Sign in or register.


The Internal Translator


Learning about Symbolic Optimum Assembly programs
Donald Knuth Scientist
Comments (0) Please sign in or register to add comments

My family went to a summer camp in… on the shore of Lake Erie for a week, that summer, and… Linwood, it's called. I… we revisited it a couple of years ago, to remember. Anyway, it's… it’s on the beach – 2 weeks we were there.  And I would play tennis with my uncles and so on, but I also had brought with me the… a… a couple of examples of computer programs that I had… that I had heard about.  And so I had some spare time while I'm at the summer place to look at these programs. And this… this made a big influence on my future life, actually. One of the programs was what… what they call an assembler, which was, meant that instead of writing in the machine language, you could write in a more symbolic language that would make it easier for… I mean I, when I started my programming I was just programming everything in numbers. And so, if I wanted to add… add a… add a number in location one to the number in location two, I would have to… I would have to say something like, 20, 0, 0, 1, something, anyway… I would have to write all these numbers out, and punch them into cards, and get it to work, and this was all I knew, when I started programming. But then the… the symbolic, the assembly program was a… was a new-fangled thing at the time, and it… and allowed me to do it in a way that's a little more easy to understand. Instead of… instead of choosing a number for every place in my program, I could… I could give it a name, and then the machine would figure out the, you know, what… what number to associate with that name. And in those days computers couldn't deal with… with letters very well.  The computers were more set up for numbers, but we were… we were allowed to use capital letters.  So we had… so, and… and in this assembler we… we could use five capital letters, for a word.  And I remember specifically when I… I used this for my tic-tac-toe program, and I… and I would have to think, what was… what five-letter word would I use to… to indicate a… a current part of the program.  And I remember, you know, with delight, when I went… went in my tic-tac-toe… in my tic-tac-toe program, when it wins, I would go to location BINGO. So I could use the five-letter word B, I, N, G, O, for that… for that part of the program.
Okay, so I'm learning about a symbolic… symbolic assembler at this time, and… and so I got the code. So I'm using the… the assembler, but… but I was wondering how… how it did it? How… how did you know, how… what went on, behind the scenes that would… that would take my symbolic thing that said, BINGO, and… and put it into numbers that… that the machine would understand directly? And so I had the listing for this program called SOAP Two, by Stan Poley of IBM. Then I had also brought with me another listing, from a program called IT – or Internal Translator – and… and this was a new program; had come from Carnegie Tech, later Carnegie Mellon University, written by four people at… at Carnegie, and… and IT took an algebraic language, instead of… instead of a machine language. So you're… you’re writing here; it's a… this is early days, this was before FORTRAN or other high-level languages were… were known. I'm talking here of… of 1956, 1957.
The idea here then, you can write X = A + B. Ah, well, you couldn't really write that because we didn't have plus signs, so… so we would really write, X1, Z, X2, S, X3, where S stood for plus, and… and Z stood for equals, and… and, you know, and every variable was X1, X2, X3 or something like this.  But… but anyway, you… you could put in algebraic formula on your card, and then the machine would figure out, from that, how to compute A + B and store it in X, or whatever you wanted it to do. So… so instead of a numeric thing and instead of a symbolic version of a numeric thing, it was algebraic, and… and you would… you would put your program from the IT language into the computer, and it would flash the lights for a while, and then, punch, punch, punch, punch, and give you a machine… a language… in the computer's language. Magic. I couldn't… I hadn't a clue as to how this was possible at all, so I… so I got a… got a copy of the program that they had used, to write this IT translator, and I had a copy of the SOAP program, the Symbolic Assembly, the Symbolic Optimum Assembly program.

Born in 1938, American computing pioneer Donald Knuth is known for his greatly influential multi-volume work, 'The Art of Computer Programming', his novel 'Surreal Numbers', his invention of TeX and METAFONT electronic publishing tools and his quirky sense of humor.

Listeners: Dikran Karagueuzian

Trained as a journalist, Dikran Karagueuzian is the director of CSLI Publications, publisher of seven books by Donald Knuth. He has known Knuth since the late seventies when Knuth was developing TeX and Metafont, the typesetting and type designing computer programs, respectively.

Tags: Lake Erie, Linwood, SOAP Two, IBM, Carnegie Tech, Carnegie Mellon University, FORTRAN, IT program, Stan Poley

Duration: 5 minutes, 37 seconds

Date story recorded: April 2006

Date story went live: 24 January 2008