REMINISCENCE - COMPILERS

by BERNARD A HODSON

For the size of its population Canada has had a disproportionate influence on software design, particularly in compiler construction, and still does to a large extent.

Canadians working on the Arrow plane helped test out the first FORTRAN, while those working on UNIVAC helped develop the early ideas on COBOL with Commander Grace Hopper, testing her ideas with simple applications. Professor John Peck, of the University of Calgary, helped specify the language ALGOL (ALGebraic Oriented Language). Again in Alberta Ken Iversen developed an interesting symbol based language called APL. Those of us who heard its description at a Calgary seminar thought initially it would not take off, but take off it did with IBM sponsorship. I was visiting IBM just as the manual was 'literally' 'hot off the press', receiving one of the very first copies from Ken, who was at that time with IBM.

Imperial Oil in Calgary had installed an IBM 1410 computer in its Calgary location. Not designed for scientific work its FORTRAN compiler was atrocious (its COBOL compiler was not much better, we debugged COBOL applications in machine language after the first compile, which would take hours to complete). With permission from the company I developed for the 1410 what was the first one-pass FORTRAN compiler in the world, the techniques for which were published in the GUIDE proceedings (GUIDE was an association of IBM business computer users).

As a result of that development I was invited to give the first ever seminar at the brand new Department of Computer Science at the University of Waterloo. Wes Graham, who had invited me, asked if I might help them develop a fast compiler for University students. I was unable to accept his invitation but Waterloo went on to develop WATFOR, WATFIV, WATBOL and other WAT??? compilers, used by Universities around the world, and by most early students of computer science.

An irony at the time was that I was invited to write the compilers for the ATLAS computer in the UK, a very powerful computer that used a new pipeline architecture where data to be processed was fed non stop down an electronic pipe, the compiler having to process data until the data ran out, rather than being given the data in distinct groupings. I was intrigued enough to consider this offer but it took them three months to decide that a Canadian could work at the hydrogen bomb location where the ATLAS was located (the location was only for Americans and British), and in the meantime I had accepted another position.

Professor Jenkins, at Queen's University, developed a language called Q'NIAL, (another symbolic approach), with an associated compiler and run system. This was marketed by his brother, Bill (formerly of AVRO, Burroughs and later the Queen's, computer centre), but only a limited number of groups purchased it.

A very interesting pioneering development was also from Alberta. A group in Edmonton formed a company called MYRIAS which developed a system in which one or two thousand microcomputers could be linked together. Initial funding was from governments in Alberta, Ottawa and the USA, the first production version going to the National Security Agency in the USA. In order to use the system efficiently the company had to expand the concepts of FORTRAN so that it could operate in a massively parallel environment, something which is becoming commonplace in today's super computer environment.

The Canada Centre for Remote Sensing, in Ottawa, also experimented with a simpler form of parallel processing using a pipeline computer from a US firm called CSPI which they used to develop FFT (Fast Fourier Transforms) and other mathematical calculations related to data received from orbiting satellites.

Canada's contributions continue to this day, with a variety of software developments at Microsoft being from Canadian graduates, and much of the special video effects for films and videos currently in use by industry, as well as many other pioneering contributions. Then too we must not forget the influence of James Gosling, an Albertan from the University of Calgary, who played an influential role in the development of JAVA, being honoured a few years back for that work by the University of Calgary. In my own case, based on work I did earlier, I developed a very compact approach to software development called GENETIX, an approach which was recently used in the UK to develop a very small , high capability run processor for JAVA, called ORIGIN-J, currently being marketed by a UK firm as the smallest full JAVA system ever to be placed on a smart card.