This synopsis was once at http://www.seasys.demon.co.uk/SSP82h/Algol68.html and is resurrected here from the wayBack machine. My notes are here.
a. Computational model: | Imperative. |
b. Machine/problem-oriented: | Algol 68 is a complex language for writing medium-sized applications. Variants have been created to write system-level software (e.g. S3, see under Variants below). |
c. Claimed advantages: | It is a general purpose language, most famous for its "orthogonal design"; to quote from the language’s defining document [1] "The number of independent primitive concepts has been minimised in order that the language is easy to describe, to learn, and to implement. On the other hand, these concepts have been applied ‘orthogonally’ in order to maximise the expressive power of the language while trying to avoid deleterious superfluities." Perhaps the longest lasting contribution of Algol 68 is the influence it has had on the designers of the popular languages of today (e.g. C++). |
d. Criticality: | Reasonably Good, but the full language relies on dynamic memory management. |
e. Insecurities: | Remarkably few. The language is mainly criticised, in this area, for its numerous and complex "coercions". These are value conversions from one type ("mode" in Algol 68 speak) to another-dependent upon the context-that happen automatically. For example, a simple value, such as an integer, may be automatically converted into an array of integers of length one, masking a possible programmer error. Like C and C++ it is an expression-based language, i.e. most constructs return a value even in contexts where that value is immediately discarded. This "voiding" (as it is called) may be intentional or a blunder by the programmer. If a procedure P of one argument, i.e. P(x), is called with zero arguments the resulting value is the value of the procedure itself which is silently discarded and, of course, no error is reported because the language rules have not been violated. |
f. Standards: | There is no international standard. The IFIP sponsored Revised Report [1] of 1976 (or 1975 or 1977 because of multiple publishers) is taken as the standard definition. |
g. Supporting agency: | Working Group 2.1 of IFIP (but inactive). |
h. Variants: | For its time, the language was considered very complex and compiler construction proved so difficult that variations were the norm rather than the exception. There is an IFIP recognised official subset-called Algol 68S (see appendix 4 of [3])-that is mainly used for learning and teaching the language, rather than writing production applications. To MOD project managers the variant of greatest interest is that from DRA Malvern known as RS Algol 68. DRA Malvern wrote the world’s first Algol 68 compiler and greatly contributed to its popularity in the UK. Several systems of significant interest to MOD are written, and still maintained in, Algol 68; examples include: MALPAS-the verification analysis tool, and Ella-the hardware description language system. (N.B. because of the popularity of Ella and the desire to have it available on a wide variety of platforms, Praxis Systems Limited were commissioned to produce a translator from the subset of Algol 68 used to write Ella to Standard C.) ICL still use a variant/subset of Algol 68 for systems-level programming on their VME-based mainframes, known cryptically as S3. Some user sites also use S3. The British Standard language RTL/2 was also heavily influenced by Algol 68. |
i. Compiler validation: | There is nothing with official standing, but the following is considered first rate: The Revised MC ALGOL 68 Test Set, by Dick Grune (CWI report IW 122/79, Computing and Mathematical Centre, Amsterdam). |
j. Tools/environments: | Tooling is poor, especially by modern standards. |
k. Programming-in-the-large: | Formally the language has no module facility and therefore programming-in-the-large is not well supported. However, the main variant of interest to MOD (RS Algol 68 systems) is a superset language that does include a powerful modularisation mechanism. |
l. Platforms: | RS Algol 68 Systems are found on ICL VME-based mainframes, DEC VAX VMS-based systems, Honeywell Multics-based mainframes, SGS Thomson transputers, etc. Other compilers exist for subsets of the language running on PCs and workstations (a full list is given in issue 52 of the Algol Bulletin, August 1988.) |
m. Reuse/libraries: | The language comes with a fairly good standard library of routines. However, there are few, if any, commercial libraries written in Algol 68 (with the notable exception of a version of the Numerical Algorithms Group-NAG-library). |
n. Interfacing: | Interfacing is in general poor, and is not supported by most compilers. |
o. Cross-language linking: | Poor (see Interfacing). |
p. Portability issues: | Portability rates good, but is most often achieved by using the same compiler (e.g. RS Algol 68) on different platforms. |
q. Skilled programmers: | Today there are few skilled "Algol 68 programmers" (outside DRA Malvern). Not many universities teach the language, even in a comparative languages class. |
r. Typical prices: | Where available, compilers are cheap because of MOD or academic support rather than commercial vendors. |
s. Summary comments: | Most people consider the language "obsolete". It should probably only be used to maintain legacy systems originally written in Algol 68. |
t. References: | |
standard | [1] A. van Wijngaarden (et al), Revised Report on the Algorithmic Language Algol 68, Springer-Verlag, 1976, ISBN 3-540-07592-5. |
dialects | [2] Philip M. Woodward and Susan G. Bond, Guide to Algol 68 for users of RS Systems, Edward Arnold, 1983, ISBN 0-7131-3490-9. |
quality texts | [3] C.H. Lindsey and S.G. van der Meulen, Informal Introduction to Algol 68 (revised), North Holland, 1977, ISBN 0-7204-0726-5. |