dark mode light mode Search Menu
Search

ALGOL

The history of programming languages began in the 1950s with the evolution of software from flipping switches on massive machines in the 1940s to computers built and sold by IBM, Burroughs, and others. The new computers had custom software that only worked on the company’s computers. Imagine if Java only worked on Dell computers running Windows. And C++ only worked on Lenovo computers running Linux.

By the mid-1950s, efforts in Europe and the US started to create a universal software programming language. ALGOL — short for ALGOrithmic Language — was specified in 1958 to meet these goals:

  • Similar to mathematical notation and readable with little explanation needed.
  • Usable to describe computing processes in publications.
  • Translate into machine programs mechanically.
  • Work on any computer.

There are three specifications as the result of meetings, ALGOL 58, ALGOL 60, and ALGOL 68. The ALGOL 60 report and specification, however, has had the most impact on the history of programming languages.

What Makes ALGOL Special?

ALGOL 58 and ALGOL 60 arrived at a moment in programming history when programmers, mathematicians, and computer scientists started to make progress understanding how modern software might work and evolve. While ALGOL is designed to be a universal programming language — and never achieved this goal, the process of creating the ALGOL 60 language to describe algorithms provided examples that inspired other languages throughout the 1960s to date.

For example, Americans use a decimal point while Europeans a comma. Such a simple difference posed a problem for software to work on all computers. The solution was to define ALGOL on three levels, reference, hardware, and publication.

Other solutions that inspired future modern programming languages include conditionals, loops, switches, and procedures. While ALGOL 58 captured the latest ideas and solutions for software programming in the 1950s, the ALGOL 60 specification had the most impact.

ALGOL 60’s primary contribution? The Backus Naur Form (BNF), a way to describe programming languages that computers could process and humans read. BNF statements read much like mathematical statements while ALGOL added a way to describe actions upon these statements and interactions between statements. BNF describes the transition point between math and programming.

Today we take these typical programming statements as common and unremarkable:

$i = 0
if ($i < 10) print $i $i++ In 1960, however, there was no common universal way to evaluate a variable $i and then perform a task when a statement evaluates to true (or false). The Backus Naur Form and other details in the ALGOL 60 report were big steps towards many of the programming language details we take for granted today. If you're wondering what the code above does, we set a variable $i equal to 0, evaluate if our variable is less than 10, and, if so, print out the value of our variable then add 1 (the $i++ bit) to the value of our variable. The $ (dollar sign) is one way to tell the programming language that I is a variable. In ALGOL, for example, a ` (back tick) is used to tell the language what follows is a variable. This fake code repeats until $i is less than 10 at which point the statement is false (not true) and stops.

How is ALGOL Used?

The ALGOL 60 language had a few details that limited adoption. For example, ALGOL 60 has no input/output (I/O) so you cannot print or echo statements to a screen or printer. While it’s possible to use compilers handle I/O, compilers at that time were specific to machines and added an extra step. ALGOL 60 also had some quirky details about handling keywords compared to other languages.

While ALGOL made huge contributions to the history of modern programming, the language was not widely used beyond the 1960s. ALGOL 68, defined in the late 1960s, attempted to make ALGOL more usable. oHowever, ther languages from the 1950s — for example, FORTRAN, COBOL, and Lisp — were used more for various reasons. However, these languages and their successors benefited from the research, debates, and solutions defined by ALGOL.

While ALGOL was designed to be universal, work on all computers, and replace many other languages, it’s contribution to software development are universal elements and ideas used in many different software programming languages.

Learn More

On the ALGOL Effort

https://heerdebeer.org/ALGOL/
https://heerdebeer.org/History/Publications/ALGOL_more_than_just_ALGOL.html

ALGOL

https://en.wikipedia.org/wiki/ALGOL_60
http://web.archive.org/web/20111114122103/http://www.eecs.qmul.ac.uk/~ohearn/Algol/intro.html
http://cs.ecs.baylor.edu/~maurer/SieveE/Algol60.htm
http://www.slideshare.net/hidayettakci/algol-ailesi-programlama-dilleri

The History of ALGOL

http://www.softwarepreservation.org/projects/ALGOL/
http://groups.engin.umd.umich.edu/CIS/course.des/cis400/algol/algol.html

Tutorials

https://www.youtube.com/watch?v=qF4qVq2M-Fo

ALGOL Online Emulator

http://www.tutorialspoint.com/execute_algol_online.php
http://kdf9.settle.dtdns.net/EE9/7087140/walgol/run.htm

Backus Naur Form

https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form

Related Posts