Computer Languages by Committee - the 1960s |
Written by Harry Fairhead | |||||
Page 2 of 4
The Algol CommitteeThe committee defining Algol must have been like any other academic committee, i.e. a seething mass of jealousy and self interest! To make matters worse there was a USA v European split which nearly deadlocked the committee over whether a decimal point or comma should be used! Officially it is claimed that the entire committee influenced the design of Algol equally, but reading between the lines there were one or two `leading lights'. On the committee at various times were Peter Naur, Klaus Samuelson, Heinz Rutishauser, Alan Perlis, and Fritz Bauer. John Backus, the man most responsible for the creation of Fortran, was also involved, but it is difficult to imagine that his heart was in the creation of another language!
Pioneers in the in the development of the ALGOL programming language. (clockwise from top left) Heinz Rutishauser, Peter Naur, Friedrich L. Bauer, Adriaan van Wijngaarden Peter NaurWhen studying the history of Algol the name that crops up most is Peter Naur. He was originally an astronomer and became involved in computing via working out the orbits of comets. This astronomy connection might even be the reason for the language being called Algol - as well as an acronym for Algorithmic Language it is also the name of the second brightest star in Perseus and the first known eclipsing binary. (The name derives from the Arabic for ghoul - Al ghul.) Various people suggested other names for the new language - Alan Perlis and Fritz Bauer offered Agricola on the tenuous assumption that it would be as popular as cola - but it is generally agreed that the name Algol emerged from the meeting without an attributable source. Peter Naur also caused something of a stir by handing out an 18-page draft report that he had prepared independently. As a result the committee was more or less forced to adopt it as a starting point and Peter Naur was appointed the editor of the influential Algol Bulletin. Fritz Bauer comments that the self-appointing of Peter Naur as "Pope" wasn't entirely welcome but it did help get the report finished in spite of the very tight time schedule - six days. As if this wasn't enough controversy for one man, there is also some argument about what to call the method of describing a computer language. Does BNF stand for "Backus Normal Form" or "Backus Naur Form"? One of the big problems surrounding language design in the early days was how to describe a language. The problem was partially solved by John Backus when he adapted a theoretic notation called a 'production rule' to the description of the syntax of a language. For example, in BNF notation an unsigned number is:
which roughly says that an unsigned number is a digit or an unsigned number followed by a digit. You can see that this has the same sort of feel to it as the compound statement idea described earlier. BNF is an ideal method of describing what is a legal instruction in a language and it can even be used to construct compilers. Peter Naur modified Backus' notation slightly and used it to define Algol. You can imagine the resentment felt by Naur's fellow Algol committee members at the suggestion that BNF means Backus-Naur-Form! There are many interesting things that can be said about Algol and the goings on that created it but the subject cannot be left without explaining the underlying model of implementation. It has already been pointed out that the idea of a stack was something that was part of Algol but it goes even deeper. The idea of a model of implementation is a relatively new one and it certainly wasn't explicit in the design of Algol. The basic idea is that the facilities and organisational methods that a computer offers makes it easier or harder to implement any particular language. The implementation model of Algol is based around the idea of a stack - if you try to implement Algol without using a stack the task is next to impossible but once you have thought of using a stack it's relatively easy. Fortran was based on a 'flat address static allocation implementation model' which in basic English means that it didn't need a stack and it assumed that variables were allocated to fixed locations in memory. The whole idea of a computer designed around a stack is a much more complex than Fortran's model but one manufacturer, Burroughs, even built a computer based around the use of a stack - so demonstrating the influence of software on hardware design. You could say that while Algol isn't much used today it is still with us in all of the C like languages - Java, C# and so on which are block structured and use a stack model for their implementation.
|
|||||
Last Updated ( Saturday, 08 June 2019 ) |