In 1958, an international committee met to design a new universal language. Since IBM owned FORTRAN, it could not become a universal language for all countries on all machines. The result was ALGOL (ALGOrithmic Language) 58, a more general form of FORTRAN, and the first language designed to be machine independent. The next revision, ALGOL 60, introduced block structure and scope, pass-by-value, and pass-by-name. Because ALGOL was designed to be machine independent, designers did not include and I/O statements. This made it difficult to port programs. This, combined with the fact that IBM did not support ALGOL on its machines, due to the popularity of FORTRAN, kept ALGOL from becoming more popular. Although ALGOL never became widely used, for the next 20 years it was the major language used for publishing and communicating algorithms. Most modern imperative languages inherited many ideas from ALGOL.

ALGOL is historically important to students because it introduced many new concepts. Any imperative language that was developed after ALGOL has many features that came, more or less directly, from ALGOL. Students can about how to design a language by studying ALGOL because it was both an innovative success and a terrible failure. By studying ALGOL, hopefully students can gain an understanding of what to do and what not to do when creating a language. Also, since ALGOL was used as the only language for publishing algorithms for such an extended period of time, students should be familiar with ALGOL so that they will be able to read and understand important papers and publications from that time.

Source: "Concepts of Programming Languages" by Robert W. Sebesta, The Benjamin/Cummings Publishing Company, Inc, 1993