When I came to the University of Alberta in 1963 the Computing Centre was operating an IBM 1620 on a closed-shop basis with users submitting their programs and data on decks of punched cards which were processed by Computing Centre staff. The 1620 had been purchased in 1961 as a replacement for the LGP-30 which continued to be used until the middle of 1963. Even though I never used the LGP-30, I would like to make some remarks about it here.
When the University of Alberta acquired the LGP-30 in October 1957, it became the third university in Canada, after Toronto and British Columbia, to have a computer. The LGP-30 was purchased from the Royal McBee Corporation of Port Chester, New York at a price of $40,000. It was installed in the Department of
Physics in the basement of the Arts Building but was later moved to the Arts Building Annex, a small building immediately north and west of the Arts Building. Use of the computer was at first controlled by the Committee on Electronic Equipment chaired by Dr. Donald B. Scott of the Department of Physics. In 1960 it became the responsibility of the newly formed Computing Centre with Don Scott as Director. The picture shows Ursula Maydell standing with the LGP-30 which was displayed during the Department's 25th Anniversary celebrations in October, 1993.
The LGP-30 system consisted of the LGP-30 with a Flexowriter console, a photoelectric paper tape reader and a mechanical paper tape punch, and an additional Flexowriter for the preparation of program and data tapes. The main computer weighed 800 pounds, occupied 22 cubic feet, and required a floor area of eight square feet. Storage consisted of a magnetic drum with a capacity of 4096 thirty-two-bit words. The clock speed was 120 kilocycles giving addition and multiplication times of 8.75 and 24 milliseconds, respectively. The internal operation was binary; conversion between number systems on input and output had to be explicitly provided by the programmer. Arithmetic opertions were in fixed-point. The order code consisted of sixteen one-address instructions.
A number of manuals were provided with the system: a fifty-six page programming manual, programming class notes, a subroutine manual, and an operations manual. All of these were typescripts except the last which was printed. The programming manual was written in understandable but somewhat unpolished prose. The introductory paragraph, entitled "What is programming", contained the following statement, undoubtedly questioned by many (if not all!) users: "Programming the Royal Precision LGP-30 is basically simple. Understanding certain problems requires certain knowledge, however programming for the LGP-30 does not".
The logical design of the LGP-30 is described concisely in Computer Structures: Readings and Examples. A very interesting LGP-30 website is maintained by Ed Thelen in association with the Computer Museum History Center.
The Computing Centre was run on an open-shop basis with the users doing their own programming assisted by a number of students, both undergraduate and graduate, who worked full-time during the summer and part-time during the academic year. Two of these students were Bill Adams and Ursula Maydell who later became faculty members in the Department.
Early in 1960 Bill Adams gave a course consisting of twelve two-hour evening lectures for the Department of Extension on programming the LGP-30. This was possibly the first programming course given at the University of Alberta. The first example given in the course was to find the area of the annular ring between two concentric circles of radii R and r. The LGP-30 program is the following:
ACT I, for "Algebraic Compiler and Translator", was a compiler for the LGP-30 which was intended to "facilitate the coding of problems through the use of common mathematical terminology, bearing in mind some basic rules of elementary algebra". The manual was a carefully written typescript of 18 pages. It is a somewhat curious document when read some forty years after it was written but it is an excellent example of early attempts to design and implement a language based on algebra that would simply the programming task. It even addressed the question of efficiency of the compiled program for we read the following on Page 1:
The ACT I program for the sample problem, which has not been debugged of course, is shown here.
Two of the early uses of the LGP-30 at the University of Alberta were for theoretical physics calculations in the Department of Physics and for the analysis of fertilizer trials in the Department of Soil Science. Other departments using the computer were Animal Science, Chemical Engineering, Chemistry, Educational Psychology, Electrical Engineering, Geology, Mathematics, Physiology, Plant Science, Political Economy, and Psychology, as well as the Alberta Research Council. Use of the LGP-30 continued to increase in the late 1950s. An article appearing in The Edmonton Journal on November 22, 1960 said that the University's computer, which was referred to as a "30 computer", was being used twenty-four hours a day and seven days a week.
The LGP-30 continued to be used after an IBM 1620 was installed in May 1961 and was finally shut down in the middle of 1963. It was eventually stored in the basement of the General Services Building. When the Department celebrated its 25th Anniversary in October 1993, it was put on display. A few years later I decided to have a look at it, and much to my horror discovered that it had been sent to the scrap heap, apparently without even the courtesy of consulting the Department. Fortunately within the last year we were able to find another one in Calgary. It is now safely in storage in the Department, and we hope to restore it to working condition.
Loc. Instr. Comments
0000 B 0010 R to Acc
0001 A 0011 Add r to Acc
0002 C 0012 Store R+r and clear Acc
0003 B 0010 R to Acc
0004 S 0011 Subtract r from Acc to give R-r
0005 M 0012 Multiply R-r by R+r
0006 M 0009 Multiply by Pi to give Area
0007 C 0012 Store Area
0008 Z 0000 Halt
0009 Pi { Storage of }
0010 R { data as }
0011 r { binary numbers }
0012 { Working storage }
The above code does not represent the complete program as it lacks the commands for entering the values of Pi and the two radii and converting them to binary and the commands for printing the desired area as a decimal number.
The result of the "source" program will be an efficient machine language LGP-30 program known as the "object" program. In many cases this resulting "object" program will be as short and fast as a hand prepared program - in some cases shorter.
Possibly too much was expected of the ACT I language for we read on the same page that
It seems a safe assumption that the programmer will occasionally make an error in logic and/or error in transcribing his problem into "source" language.
It should be intelligible without any comments. However, we might mention one feature of the ACT I language arising from the LGP-30 not distinguishing between upper and lower case characters. Examples given in the manual state that ":" is the same as ";", "?" is the same as "/", "[" is the same as ",", and "]" is the same as ".", Therefore an expression which would be written as "a/(b+c)" in most languages would be written normally in ACT I as "a/[b+c]" but could be written in many other forms with "a?,b=c." being only one. The manual states as a general consequence of this substitution "[T]he programmer may use the character which is easier or more appealing to him".
0 : n
0 : sum
0 : max
s1 read price
when price grt 0 trn s2
use s3
s2 n : n + 1
sum : sum + price
when max grt price trn s1
max : price
use s1
s3 0 print n
2 print sum
2 print max
stop
LGP-30 ACT I
The Arts Buiding Annex which housed the LGP-30 during most of its active
life suffered a somewhat similar fate as it too has disappeared almost without a trace. The only picture of the building I have been able to find is from the 1947 Yearbook Evergreen and Gold and is shown here. A few remarks here might help to preserve at least the memory of this historic little building. It was built early in the Second World War for use by the Alberta Research Council for testing aviation gas.
It was a two-story brick building approximately 18 feet by 40 feet, and cost according to the minutes of the Board of Governors $12,671.24 with an additional $3,987.17 for equipment. The window panes were scored to minimize damage from flying glass in case of an explosion. It was informally known as the "Gas Lab", and was used for testing purposes until the Alberta Research Council laboratories were built on the campus in 1954. The Annex was demolished in the summer of 1986. Fortunately Bill Adams noticed the demolition taking place and we were able to rescue a few bricks. A picture of one of them is shown here.