John Ehrman on the Value of Assembler
Reg Harbeck talks with John Ehrman on his 50th anniversary as a SHARE volunteer about his path to the mainframe and his Assembler expertise. Listen to the interview via the orange play button or read the transcript below.
Reg Harbeck: Hi, I'm Reg Harbeck and I'm here at SHARE in San Jose with Dr. John Ehrman who is a SHARE volunteer. He is celebrating his 50th anniversary as a SHARE volunteer today which is just outstanding and I'm very happy to have a moment to sit down, just chat with John and get to know him a bit better. John, if you could perhaps maybe start by just giving us a sense of how you ended up on the mainframe and how you ended up at SHARE.
John Ehrman: I was a graduate student in physics at the University of Illinois and took a programming course on the ILLIAC and was hooked on computers. After I finished my degree, I was hired by the computer center at the University of Illinois, which was running IBM 7090/94 systems and essentially managed that group for two years. Part of my activities was that I was taken by my manager to my first SHARE meeting in San Francisco in February of 1964. The first session I went to was a noisy discussion of what was called the new programming language, which later became known as PL/1. I thought, boy, this is much more fun than staid and stodgy academic conferences, so I stayed with SHARE for three sessions before I left Illinois. I traveled around the country on vacation and wound up taking a job at Stanford Linear Accelerator Center and got back involved with SHARE in early 1967, volunteered to take over the SHARE Assembler Project at that time so that was the beginning of my volunteer activity rather than just pure attendee. I stayed with it over a long period of time including being on the board of directors from '72 to '74, enjoyed doing a little bit of everything while I was at SHARE managing several different projects including Fortran, Testran—which nobody knows anything about anymore—and when I left the Stanford Linear Accelerator Center in '83 and joined IBM they assigned me to SHARE as a representative to Fortran project.
I sat in during that period to other projects I was interested in, in particular Assembler project because I had always retained an interest in that, because I had taught some Assembler at Stanford. In about 1988, I was able to put together a document showing that there was still continued interest in Assembler enhancements to what was then the most widespread Assembler H, and managed to get management approval to add to it a bunch of user mods—many of which had originated at Stanford at the Linear Accelerator Center where I had worked. They were known as the SLAC mods and they were very popular in the Assembler community. I got management approval to see what we could do to upgrade the Assembler, and in May of 1992, announced release 1 of the High Level Assembler, which was the successor to Assembler H. It went through, over the next 20 years or so, six releases greatly expanding the flexibility, usability and power of the language. So that took us up to about 2012 and at that point the development work was transferred from the group that had been doing all the work on it to a different group at IBM. And also at the time I had injured my back and was out for a number of months so I pretty much was out of the loop thereafter.
Reg: That's a really interesting story of languages but I have to say the one language you didn't mention that strikes me as much as anything is COBOL. You mentioned Assembler. You mentioned Fortran. You mentioned PL/1. You didn't mention COBOL. Any particular reason for that?
John: I had no background in any organization that used COBOL. I did work on one COBOL program many years ago which had had a five level loop nested, a loop nested five levels deep to print calendars. I made a couple of mods to that just so it would print current calendars directly but I never had a need to use COBOL.
Reg: Interesting.
John: The Stanford Linear Accelerator Center was a high energy physics research lab and all the data analysis programs were written in Fortran. There were some payroll type personnels programs written in PL/1 and I would sometimes help a little bit with those, but my real love was with the low-level stuff where you could get down onto the machine level because that is where I had learned on the Iliac.
Reg: At home I have a green instruction set card that you gave me back at SHARE in Orlando, which is a special collector's item that you had made. Certainly it is sort of neat to be talking with somebody who has had such a presence in the development of Assembler because it is easy to forget that, just like every other language, Assembler has not stayed still. It has been advanced in a lot of different ways, not just in terms of the machine architecture, but in the way you can actually write it. Maybe if you could shed some light into some of the principles you brought into turning Assembler into something that really is a high-level language in some ways.
John: Yeah. One interesting aspect of the Assembler H that’s elaborated in quite a number of ways in the high level Assembler is the conditional assembly in macro language which has capabilities that far outstrip those of any other known programming language even if it does have a "macro” facility. Some of those macro facilities are fancier, but they don't have some of the capabilities involving the interaction of the conditional language with the base language that are available to you in the High Level Assembler, so you can do things in the Assembler language that are essentially unavailable to any other language. It gives you a tremendous amount of power and flexibility to design and build a language that is specific to the needs of your own applications so you can write a language that speaks your business if you like. Not many people do it that way, but those who do find that they've got tremendous flexibility and you can basically hide a lot of the underlying machinery of the Assembler language in somewhat the same way as the high level languages do, but instead of having to force your business concepts onto COBOL or onto PL/1, I write my programs in a language that is my business.
Reg: Cool. Now of course when you first came to SHARE, it was two months before IBM actually announced the System/360 mainframe which for many of us is a watershed in modern computing, especially mainframe computing. When you came back to SHARE three years later, the mainframe was already out there and perhaps these other architectures were starting to fade. What was your experience of the transition to the System/360 and its descended mainframes from a SHARE perspective and from an Assembly perspective?
John: Yeah, I was lucky. I joined SLAC, the Stanford Linear Accelerator Center, in February of '66 and at that time, they were negotiating for a substantial processor for doing the data analysis on this very large physics machine. Part of what they wanted to be able to do was graphics analysis, and so they joined with IBM forming a graphic study group; IBM loaned SLAC a model 50 and so that was what I started programming on in the summer of '66. I had been doing Assembler language programming previously on the Iliac at Illinois, a 650/7090/7094, so I have always enjoyed doing this low-level stuff and immediately jumped onto that machine. I also found that on the Stanford campus, which had a 7090 at the time, the professor who was teaching the machine language stuff wanted to go onto other activities so I volunteered to teach basically Assembler programming, just at the time they were getting a 360/67 so I taught introductory machine language and programming at Stanford during that time and that encouraged me to write up some notes which eventually have evolved into my Assembler language textbook.
Reg: Well thank you very much Dr. Ehrman for taking the time for this. I really appreciate it and congratulations again on 50 years as a SHARE volunteer. That is absolutely an outstanding example for the rest of us.
John: It's been fun. I really enjoyed it.