ALGOL: The Best Language You've Never Heard Of
ALGOL is probably the most influential language you've never heard of.
ALGOL was important in its own right, especially in academia and mathematics. But its biggest influence has been on the development of other languages. Most languages in use today owe something to ALGOL
Brief History of ALGOL
ALGOL was originally invented in the late 1950s, by a joint committee of American and European computer scientists, meeting in Zurich. Their work was released as the language now known as ALGOL 58.
A second release by the group, known as ALGOL 60, became the standard version of the language is common use.
This version, described in the now-famous ALGOL 60 Report, had a profound impact on the the field of programming language design. ALGOL 68, the last "official" version of the language was not well received by the ALGOL community.
ALGOL never really caught on in business programming, aside from some mathematical analysis applications used by the financial industry.
It was, however, extensively used in academic computer science and math, and was the standard language for algorithmic description well into the 1980s and 90s.
ALGOL's Influence on Other Languages
ALGOL's syntax and structure directly influenced a number of other languages, which have come to be known as "Algol-like" languages.
These languages include Simula, C, Pascal, and Ada. Some of these connections are fairly direct: Pascal, for example, was developed by Niklaus Wirth, who had previously built an ALGOL derivative called ALGOL W.
The most famous member of this group is C, which spawned its own family of derivatives and descendants: C++, C#, Objective-C, and D — to name just a few. The syntax of PHP is also based on C, which means that the most used server-side language on the internet traces its lineage back to ALGOL.
Even more profoundly, ALGOL influenced the way programming languages are conceived of and described.
Computer scientist John Backus proposed a grammar description for ALGOL (PDF), which was used in the ALGOL 60 Report, edited by Peter Naur. This description language became known as Backus-Naur Form (BNF). BNF, and EBNF ("extended"), is now the standard way of describing the grammar of a formal language.
ALGOL is an old, mostly obsolete language, and so it can be very hard to find resources and reliable information on it. Lucky for you, you don't have to. We have scoured the internet to bring you the most important resources for learning about ALGOL.
All the worthwhile tutorials on ALGOL were written a long time ago. Thankfully, the best ones have been scanned and made available online.
A Course of Algol 60 Programming (PDF) is a tutorial on the language, written by Peter Naur, the editor of the original ALGOL 60 Report (see below)
Informal Introduction to ALGOL 68, Revised Edition (PDF) by Lindsey and Meulen, was originally published in 1977, and is now available for free online
Programming Algol 68 Made Easy (PDF) by Sian Leitch, is another classic book
A Tutorial on Algol 68 (PDF) is a journal article from 1976, providing both an introduction to the language and a glimpse into computing history.
Algol 68 Genie is a modern, cross-platform ALGOL compiler — probably the easiest way to start working with ALGOL on your computer; don't miss Learning Algol 68 Genie (PDF) by Marcel van der Veer, which includes a language tutorial and example programs
Execute Algol Online with the in-browser Algol interpreter from Tutorials Point
Algol-68 to C is a portable translator/compiler, allowing you to run ALGOL 68 in any environment with a C compiler
Example ALGOL Programs
Sieve of Eratosthenes in ALGOL 60 shows an example program for finding prime numbers in ALGOL.
Report on the Algorithmic Language ALGOL 60 (PDF) edited by Peter Naur, is the original definition document for the language — a must-read for any ALGOL researcher; the Revised Report (PDF) provides the final, official definition of the language; the Revised Report is also available in a contemporary critical edition with corrected errata (PDF)
Algol68.org is a website dedicated to the language, with plenty of additional resources and material
Books on ALGOL
A Guide to ALGOL Programming (1962) by Daniel McCracken is a book covering ALGOL 60
Programming - ALGOL (1969) by D J Malcolme-Lawes is an early general-audience manual on the language, and includes a historically fascinating introduction to computer technology
Programming and Problem-Solving in Algol 68 (1978) by Andrew JT Colin is an entry-level book which introduces both computer programming in general and ALGOL in particular
An Introduction to Algol 68 Through Problems (2014) by Learner and Powell also introduces computer programming using ALGOL, using a series of practical computing problems
Programming by Case Studies: An Algol Primer (1969) by Chedzoy and Ford is another introduction to programming by way of ALGOL, but with an emphasis on mathematics.
ALGOL and Other Languages
Handbook and Guide for Comparing and Selecting Computer Languages (1990) by James Ogden provides an interesting comparison of the properties, strengths, and weaknesses of Basic, FORTRAN, Pascal, COBOL, PL/1, APL, ALGOL-60, and C
Numerical Methods of Mathematical Optimization (1968) edited by Kunzi et al covers mathematical computing using both FORTRAN and ALGOL
Data Structures of Pascal, ALGOL 68, PL/1 and Ada (1986) by Lewi and Paredaens, covers underlying concepts, not practical programming examples, in the included languages
FORTRAN, PL/I and the Algols (1979) by Brian Meek compares these three important language families
Expert C Programming: Deep C Secrets (1994) by Peter van der Linden includes interesting details about the influence that ALGOL had on the development of C
Algol-like Languages Volume 1 (1996) and Volume 2 (1997) edited by O'Hearn and Tennent is a collection of essays exploring the history of ALGOL and its influence on the development of other programming languages.
ALGOL is not a language you need to learn to get a job or to be a successful developer. However, it was hugely influential on both the practice and theory of computer programming.
If you're interested in language design or the history of computer science, ALGOL is an important touchstone to be familiar with.
Further Reading and Resources
We have more guides, tutorials, and infographics related to coding and development:
Fortran Resources: one of the very first high level languages, still widely used in scientific programming.
COBOL Introduction and Resources: the classic business programming language.
Prolog Resources: Prolog was an early logic programming language.
What Code Should You Learn?
Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn? It not only discusses different aspects of the languages, it answers important questions such as, "How much money will I make programming Java for a living?"