Dr. John Ehrman was the source, and an appreciation of his role in modern mainframe computing was the object, when I interviewed him at SHARE in Atlanta in 2012. After discussing the mainframe context and his background, we began to seriously dig into the origins of High-Level Assembler (HLASM).
While working for IBM focused on Fortran, John attended a SHARE conference in San Francisco in the mid-1980s (either 1983 or 1987 according to the SHARE past events web page) when he got swept up in a series of fortunate events: “Well, at this particular conference—it had been a tradition . . . to invite various middle-level IBM executives to come and visit to give what I call the standard ‘IBM loves you’ talk.” John continued, describing how an IBM executive spoke for an hour and then had another hour set aside for dialogue, but halfway through, someone asked, “‘When is IBM going to do something to improve the Assembler?’ And she made the mistake of saying, ‘Oh, nobody uses the Assembler anymore.’” The remaining half hour amounted to an intense corrective experience for the unfortunate executive. “I happened to be walking out of the room behind her and she was saying to one of her staff, she says, ‘I had no idea. I had no idea.’ [Chuckles] And so that, again, that was part of the background of my fascination with Assembler-type topics.”
John continued, noting that, “around 1989, the guy who was doing the planning for the Assembler retired, [but] occasional customer requirements would still come in, and I took over answering those. In the process, I found [that in] IBM’s internal requirements database there were just hundreds and hundreds and hundreds of requirements against the Assembler. And so, I collected them together as best I could into a document and shopped it around to see if I could get a way to find funding for improving this. [I] finally ran across an executive manager who happened to be at the point of the year where he knew if he didn’t expend some funds in his budget, he would lose it next year. So, he said, ‘Here, take this and get started.’ At that [same] time, a group from Australia who had done a port of IBM’s [OS/VS] COBOL compiler to VSE, had completed that successfully, on time and under budget, so they got the job of working on Assembler H and converting it into what became High-Level Assembler.
“The work on the Assembler in Australia started around the beginning of 1990 and eventually the product came out in May of 1992 as High-Level Assembler.”
At this point, in 1992, John’s primary work focus became Assembler. Also, having been active in various SHARE language-oriented projects since 1967, he “became very, very active in the SHARE Assembler project.”
Now, as you may recall from a previous article in this series, John had worked at the Stanford Linear Accelerator Center (SLAC) before joining IBM, and his activities there continued to have a constructive influence on his growing contributions: “From 1992 on, my primary focus was the Assembler. It turns out that the Assembler is also very heavily involved in the formats of object files. As a customer service user when I was at SLAC, we had to deal with a lot of people who had problems with the Linkage editor and the loader because, in particular, both their control statements and their messages were a bit obscure. I’d always been interested in this interaction between source code, object code and program linking; so, one of the things we had done when I was at SLAC was to submit, I think, 23 requirements against the Linkage editor and loader. The very first thing that happened when I joined IBM, the guy who had been the IBM rep to that group says, ‘Here, answer these!’ [Chuckles] So, at the time, it turned out that because they were developing the new data storage technology—that went under the internal nickname of ‘Jupiter,’ which also included PDSEs and the new executable format called program objects—they needed to design a new object file format. I participated in that because I knew also the Assembler side that would have to generate this stuff.”
So, the development of HLASM proceeded. “We also made quite a number of enhancements to the Assembler from its very first release. I’m a big fan of macros, so we made quite a large number of enhancements to the macro facility, as well as many more I’m going to call ‘usability enhancements.’ And, of course, we did pick up just about all the SLAC mods.
“Around 1997, when the nervousness about Y2K was on the horizon, most of the other products were well on their way to developing one or another technology for coping with it,” John continued, noting that management had therefore asked what would be done about Assembler. “That’s when we created what we called the High-Level Assembler toolkit feature, which, at the time, had only three components. Over time we’ve added three more. And so now that’s now an optional feature that runs on MVS, VM, and VSE. That’s one nice thing about the Assembler — that there had been multiple Assemblers on different platforms and we were able to converge them all into one high-level assembler product.”
Normally at this point, one might be tempted to say, “the rest is history.” In this case, however, I’d say that everything we’ve now shared is “his story,” as we continue to use and enjoy the excellent Assembler programming solutions that Dr. John Ehrman gave us as a true illustration of the real meaning of “legacy.”
Read other articles in the series here: