ALGOL

This article is about the programming language family. For other uses, see Algol (disambiguation).

ALGOL is a computer programming language that was first developed in 1958 by an international consortium of scientists whose goal was to create a programming language that was not proprietary but instead roughly analogous to contemporary “open source” standards.

Although Algol was never as popular in its own time as other coding languages such as FORTRAN, LISP and COBOL, its influence on the development of subsequent computing languages has been far more profound. (Note that in the earliest days of computer programming all languages were written in upper case because no one had yet developed a syntax for lower case letters) Algol was the first computer language to use nested code sequences with lexical scope and to introduce a taxonomy of formal definition. Algol’s programming descendents include Pascal, BCPL, B and even C.

Algol was used by research scientists all around the world but had limited applicability in the commercial realm due to the fact that its descriptions lacked standard input/output functionality. For 20 years, however, Algol remained the artificial language of choice for publishing and communicating algorithms. Although Algol is no longer used today, understanding Algol is still valuable for students who want to be able to read and understand the important mathematical and computer programming publications of the time.

Algol58: The Beginning

Between May 27 and June 28, 1958, a joint committee of U.S. and European computer scientists met at The Swiss Federal Institute of Technology in Zurich for the specific task of developing a language that would provide a means of communicating numerical methods and stated processes among people using a variety of different machines. The result of this meeting was the creation of Algol 58. “Algol” was short for “ALGOrithmic Language.”

The scientists attending that meeting were members of two august professional organizations: the Gesellschaft für Angewandte Mathematik und Mechanik (Society of Applied Mathematics and Mechanics), known more commonly as GAMM, and the Association for Computing Machinery, or ACM. The ACM is still among the world’s largest and most esteemed scientific fraternities, and one of the primary societies for academic computer scientists.

By the end of 1958, the scientists had succeeded in building a working ALGOL 58 compiler for the Z22, one of the earliest commercial computers. 

Z22 Computer - by Horst Zuse

There was also a concerted effort to get IBM to adapt Algol58 for its own internal use. IBM, however, had previously developed its own proprietary computer programming language, Fortran. The attempt to merge Fortran and Algol58 evolved into Algol60.

In addition to being the first Algol implementation, Algol58 is remembered today as the basis for the computer languages JOVIAL, MAD, NELIAC and ALGO.

Algol60

Between January 1 and January 16, 1960, an international group of computer scientists met in Paris, charged specifically with the task of revising and expanding Algol58, to incorporate a notation technique for context-free grammars, known as the Backus Normal Form (BNF.) The result was Algol60.

Algol60 was an improvement over its predecessor in many ways. It allowed for evaluation strategies for parameter passing, calls by value and calls by name. It also implemented a number of useful mathematical symbols supported by no other computing language at the time, such as ×, ÷, ≤, ≥, ≠, ¬, ∨, ∧, ⊂, ≡, ␣ and ⏨. When computer scientists speak of “Algol” today, they are generally referring to Algol60.

Algol60 was revised in 1963, and superseded altogether in 1973 by the development of Algol68. In 2006 Peter Naur, one of the original scientists who defined Algol60, was awarded the ACM Turing Award, largely regarded as the equivalent of the Nobel Prize for the computer science industry.

Algol68

Algol68 was developed in 1973 by a working group associated with the International Federation for Information Processing (IFIP). From the start it was not well received because though it was intended to have a much more comprehensive scope of application than its predecessor, it was widely viewed as lacking the syntactical elegance characterized by Algol60. Full formal definitions were developed before attempts were made to implement any part of the language. Other computer scientists criticized Algol68 for complicating, rather than simplifying, the task of the compiler writer. Though Algol68 continued to be supported vigorously by European computer scientists, particularly those associated with NATO (North Atlantic Treaty Organization), American NATO scientists opted not to use it in their own defense contracts, and the Algo language gradually fell into decline.

One of the members of the working committee that developed Algol68 was Steve Bourne who ported some of its working principles to the Bourne shell and thence to the C programming language.

In 2001, the Algol68 compiler-interpreter ALGOL68G, which runs on Linux, Unix, Mac OS X and Windows platforms, was released for general use under the GNU General Public License.

Algol’s Legacy

While other computer languages from the early days of computer science like FORTRAN, LISP and COBOL are still used in limited contexts today, Algol has become the ancient Latin of the computer science world. Nobody uses Algol anymore, and yet its influence is everywhere. This is primarily because of its implementation of the BNF. Before J.W. Backus developed his new meta-language, there was no way to describe precisely legal sequences of symbols that could comprise computer programs written in a given language (here, of course, Algol, but theroretically other languages as well) Without this functionality, a machine-independent language could not be formally described.

Backus’s notation revolutionized the syntax of arithmetic expressions in computing languages. Backus’s ideas were further refined by Peter Naur who, in the interests of legibility, substituted simpler symbols and complete words for metalinguistic variables. Algol, however, represented more than just a refinement and improvement of algebraic programming language syntax. Algol was also the triumph of a group of international scientists who came together with a single goal. In that way it represented a new model for scientists working together, one that stressed collaboration rather than competition.

By Algol Master on March 24, 2012 | Uncategorized

Uncategorized