John spent his early years in
South Africa receiving a
Bachelor of Science (B.Sc.) in
Mathematics and Physics at the
University of Natal, South Africa, after which he received a
Master of Science (M.Sc.) in mathematics. His first teaching position was lecturing in mathematics. In 1946, he took a scholarship to
Yale University, where he obtained a
Doctor of Philosophy (Ph.D.) in 1950, with a thesis on the
topological semigroups. He then went on to teach at
Brown University for three years before returning to the University of Natal. In 1955, he emigrate to Canada and taught at the
University of New Brunswick followed by four years at
McGill University. He left McGill to form the Mathematics Department at the University of Calgary. His interest in computers began in 1959, when he responded to a request from McGill's mathematics department to learn to
program a
Datatron, and his first programs were written for it. As a result of this experience, he visited the University of Oklahoma to learn to program an
IBM 650, another
drum memory machine, which had an optimizing
assembler named SOAP. The
programming language Fortran was emerging then, as the translation was from
Fortran to
Internal Translator (IT) to
SOAP to
object code. At the time, his programming was in assembly code. In 1959, when McGill acquired an IBM 650, he was one of the few individuals who could program it. Around 1961, after arriving at the University of Calgary, the university acquired an
IBM 1620. He became the computing centre director, while performing his duties as head of the mathematics department. On this machine, he explored
list processing methods, and then used these to write a
compiler for the language
ALGOL 60. This led to an invitation to attend the
International Federation for Information Processing (IFIP) congress as Canada's representative. At this time, revisions were being made to ALGOL 60. He became the Canadian member of the
IFIP Working Group 2.1 on Algorithmic Languages and Calculi, which specified, supports, and maintains the languages ALGOL 60 and 68. After his time as department head, he continued to teach at UBC, circa 1978–1979. He was seen arriving at the computer centre's terminal room early morning each weekend on his old-fashioned solid bicycle, beating many graduate students who headed to the terminal room to use the
Amdahl mainframe computer in less crowded morning hours. He arrived around 9:00 o'clock, weather permitting. Presumably he was working on an
ALGOL 68 compiler system. That a professor of his status was sitting and typing at the terminal at each weekend gave some unspoken lessons to the future researchers. ==References==