Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
Get a full dump of the dictionary:
List of Names
- Language type:
Algol (for Algorithmic Language) was
a very early block-structured
developed a committee, and implemented by
computing pioneer John Backus.
It was designed for general-purpose industial
and scientific programming.
Dialects of Algol include the original
Algol60, Algol68, ABC Algol, Algol W,
many other variants. Algol58 was
originally called the "International
Algebraic Language" (IAL).
Data types supported by Algol60 include
booleans, various sizes of integers and
reals, and strings. Support for strings
was limited in standard Algol, but later
dialects and implementations added more
Algol60 was strongly typed in the sense
that the compiler checked parameter types
in expressions and subroutine calls.
It did not permit the declaration of new
data 'types' or data structures. Arrays
are the only composite data type in Algol60.
Algol60 supported highly regular block
structure and a complete set of
control structures: if-then-else, case,
while loops. One of Algol's main
contribution to programming was the
introduction of block nesting and
lexical scoping of local and block
Algol60 did not support any kind of
general memory management or dynamic
Various implementations of some Algol
dialects are still available commercially.
Information on the web seems sparse, but
some documentation of Algol68 is available.
Of course, many old programming books
describe the language.
J. Backus and P. Naur, 1958-60.
- See Also:
Algol itself is no longer widely used, but
it had a profound effect on computer
language design from 1958 onwards.
Many of the features that today we
in a general-purpose language were
first proposed for Algol60 or
Algol60 was probably the first
computer language whose syntax was
completely described with a formal
grammar prior to writing the compiler! :)
Algol60 as originally defined had no language
statements specifically for I/O, which is
common today but unique back in the late 1950s.
One interesting aspect of Algol60 was its
support for two kinds of subroutine parameter
passing: call-by-value and call-by-name.
The call-by-name method, which allowed
Algol to support a kind of dynamic scoping
(a la Lisp) was supported with a slow
but flexible mechanism called a thunk.
The Unisys A-series computers were built
especially to run Algol, and featured a
machine language based on a part of the
- Sample code:
// the main program, calculate the mean of
// some numbers
real array Data[1:N];
real sum, avg;
for i:=1 step 1 until N do
begin real val;
Data[i]:=if val<0 then -val else val
for i:=1 step 1 until N do
Here is a better example, written in the
Algol60 publication language, from
Jean Sammet courtesy of
procedure problem (a, b);
value a, b; integer a, b;
begin integer k; real e;
for k := 2 × (a ÷ 2) 1 step 2 until b do
e := if prime(k) then sqrt(3 × k sin(k))
else sqrt(4 × k cos(k));
if prime(k) then putlist(k, e, 'prime')
else putlist(k, e, 'nonprime')
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is firstname.lastname@example.org
[Ziring MicroWeb Home]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.