An extensive revision of
ALGOL 60 by Adriaan van
Wijngaarden et al. ALGOL 68 was discussed from 1963 by
Working Group 2.1 of
IFIP. Its definition was accepted in
December 1968.
ALGOL 68 was the first, and still one of very few, programming
languages for which a complete formal specification was
created before its implementation. However, this
specification was hard to understand due to its formality, the
fact that it used an unfamiliar
metasyntax notation (not
BNF) and its unconventional terminology.
One of the singular features of ALGOL 68 was its
orthogonal
design, making for freedom from arbitrary rules (such as
restrictions in other languages that arrays could only be used
as parameters but not as results). It also allowed user defined data types, then an unheard-of feature.
It featured structural equivalence; automatic type
conversion ("
coercion") including dereferencing; flexible arrays; generalised loops (for-from-by-to-while-do-od),
if-then-else-elif-fi, an integer case statement with an 'out'
clause (case-in-out-esac);
skip and
goto statements;
blocks; procedures; user-defined operators; procedure parameters;
concurrent execution (par-begin-end);
semaphores; generators "heap" and "loc" for dynamic allocation. It had no abstract data types or
separate compilation.
http://www.bookrags.com/research/algol-68-wcs/.