Tales from the history of Canadian technology

Monday, March 26, 2007

Backus and his influence in Canada

The American computer scientist John Backus died recently, and obituaries followed in major newspapers, on the radio and television, and online. Such an honour is rare for computer scientists, but there is little doubt that his contributions to modern computing were significant and deserving of such recognition.

As an employee of IBM, Backus was responsible between 1954 and 1957 for the development of FORTRAN, a high level programming language for the IBM 704. FORTRAN was one of the worlds' first programming languages. Though it was not the first, it was the first widely popular language, and one of the first to be made available on different computers (not long after the IBM 704 version was completed IBM began writing a dialect for the IBM 650 known as FORTRANSIT and other computer manufacturers soon began developing their own implementations). Among computer scientists and linguists, Backus was also famous for his contributions in the late 1950s to the Backus-Naur form (BNF), now a near-universal technique used to describe a language grammar, though fewer obits mentioned this.

There are two Canadian connections to Backus that I feel compelled to mention. Although there were other computer languages to choose from by the mid 1960s -- COBOL, ALGOL, LISP -- most universities had little choice but to teach FORTRAN, given its astounding popularity. In 1965 the University of Waterloo produced WATFOR, a student-oriented compiler intended for the IBM 7040 mainframe. The standard IBM FORTRAN compilers were considered too slow and inconvenient for use in a student environment so over the summer of 1965 Waterloo hired four undergraduates to implement a quicker version that also provided useful diagnostics to beginner programmers (see Shantz, P. W., German, R. A., Mitchell, J. G., Shirley, R. S., and Zarnke, C. R. 1967. WATFOR—The University of Waterloo FORTRAN IV compiler. Commun. ACM 10, 1 (Jan. 1967), 41-44.). Though not original -- it was based on other student-oriented FORTRAN compilers which existed for the IBM 1620 -- Waterloo was the first to create one for the 7040, and more importantly, the only organization to tackle a student-oriented FORTRAN compiler for the IBM System/360, which it completed in 1968. Both these and many other versions to come were made widely available and eventually millions of students world-wide learned to program with a WATFOR compiler. Obviously, Backus' influence was indirect, but WATFOR was one of the great Canadian accomplishments in early days of computer science.

The second connection is rather more direct, and far less well-known. Prior to his work on FORTRAN, Backus supervised the creation of an automatic coding system, or autocode (and similar to an assembler in today's parlance) for the IBM 701 known as Speedcoding (see Backus, John, "The IBM 701 Speedcoding System", Journal of the ACM (JACM), Volume 1, Issue 1 (January 1954), pp. 4-6,). The Speedcoding system simplified programming for the IBM 701 considerably and after Backus described it in a talk in the fall of 1953 at a conference at MIT, programmers from the University of Toronto borrowed the concepts to craft an autocode for Ferut, their Ferranti Mark I. Known as TRANSCODE, it was a godsend to beginner programmers, reducing the time it took to learn basic programming skills from months down to hours. It was so simple that amateurs could read the TRANSCODE manual and submit their own programs via mail. It was crucial in making Ferut available to the entire country at a time when there were less than half a dozen computers in Canada (see Hume, J. N. and Worsley, B. H. 1955. Transcode, A System of Automatic Coding for FERUT. J. ACM 2, 4 (Oct. 1955), 243-252. Alternatively, read my dissertation!)

So a toast to John Backus, one of the fathers of modern computing.

Labels: ,