A SHORTER HISTORY OF ALGOL68
ALGOL 68 was defined in a document, first published in January 1969,
and later published as Acta Informatica 5 (1975)
(still available from Numerische Mathematik) and also printed as
Sigplan Notices 12(5), 1977. Furthermore there have been translations into
German, Russian, French and Chinese.
This document (and its predecessor, the Draft Report on ALGOL 68 which was
sent out in February 1968 to 1000 members of the "computing community")
created at the time quite a stir in Computer Science: Many people found
it extremely formal, and therefore unreadable. Others were enchanted by
its precision and by the elegance and power of the language described.
Most people of course never read it, but were convinced by others that it
was unreadable.
Tutorial documents were written by Lindsey & van der Meulen on the
language, by Cleaveland and Uzgalis on the grammatical formalism. The
language was implemented, but very slowly because the art of
compilermaking was not advanced enough, because there was no official
industrial interest and because implementation was usually seen as an
interesting academic exercise, rather than the production of a useful
compiler. Some completed implementations (I am reciting from memory,
without consulting my heap of documentation):
- Currie ea, RRE, Malvern 1970
ALGOL68R one-pass subset, used extensively in military and scientific
circles in Britain on ICL machines
- Zoethout ea, CDC Netherlands 1974
Full implementation, used mainly in teaching in Germany and the
Netherlands on CDC mainframes
- Hibbard ea, UK and Carnegie Mellon 1976
Algol68S large one-pass subset, ported onto many small machines like
pdp11, used (as far as I know) mostly in teaching and as a vehicle for
ideas.
- Mailloux ea, Edmonton, Canada 1978
FLACC full language Algol 68 Chechout compiler, an interpreter for the
full language, available on IBM mainframes and used in teaching, both
in North America and in Europe
- Bourne ea, Cambridge (uk) 1980
ALGOL68C nearly complete implementation of full language on IBM
mainframes
- Lindsey ea, Manchester (uk), 1984
full ALGOL68 compiler for small machines, including PC.
As you can see, hardly any of these implementations are on machines which
are available today.
A number of languages were implemented which were deeply influenced by
ALGOL 68 but did not try to be compatible, illegitimate children as it
were. I shall mention:
- RTL2, a real-time language which found wide acceptance in British
industry. Available on a motley lot of process control computers.
- ELAN, an educational language defined in Germany in 1974, which was
implemented in 1978 in Bielefeld by Reiner Hahn ea, later at the GMD
in Bonn made into a full-blown multi-user environment for educational
use on microcomputers (EUMEL).
I myself implemented Elan on microcomputers (MSDOS and UNIX computers).
Elan was used in the eighties in teaching at many secondary schools in
West-Germany, Belgium and even The Netherlands, until the bureaucrats
found out that it is not Pascal. There is a collection of books about
Elan and its educational use, including a textbook in English published
by Wiley ("Top-Down Programming" by C.H.A. Koster).
At present I am using Elan, extended with polymorphy, in teaching
systematic programming at my university.
An interesting observation is the fact that the two-level formalism used
in the description of ALGOL 68 by itself led to a number of programming
languages, including PROLOG (Colmerauer) and my own CDL family (Compiler
Description Language). A number of related formalisms have been introduced
over the years, including:
- Extended Affix Grammars (EAG) D.A. Watt 1974, of which we have a nice
implementation. Suitable for the specification and prototyping of
languages.
- Affix Grammars over a Finite Lattice (AGFL) C.H.A. Koster 1990, used
for the morphosyntactic description of natural languages.
ALGOL 68 was the first (and possibly one of the last) major language
for which a full formal definition was made before it was implemented.
Other languages for which a formal description exists have either been
formalized after-the-fact (like PL/1 and ADA) or are not more than
academic exercises. In the next volume of "history of programming
languages" a long article by Charles Lindsey should appear, concerning the
stormy history of ALGOL 68.
My own conclusion is that ALGOL68 was ahead of its time. It never was much
of a practical success, but it was a "succes d'estime". It has had an
inspiring influence on many people (roughly, on all those who have ever
programmed in it) and, less obviously, on subsequent developments, even
though only C++ and the Bourne shell today remain to show any syntactic
and semantic traces of it.
C.H.A. Koster, 180994
Dept Comp Sci
University of Nijmegen
The Netherlands
kees@cs.kun.nl
A SHORTER HISTORY OF ALGOL68
ALGOL 68 was defined in a document, first published in January 1969,
and later published as Acta Informatica 5 (1975)
(still available from Numerische Mathematik) and also printed as
Sigplan Notices 12(5), 1977. Furthermore there have been translations into
German, Russian, French and Chinese.
This document (and its predecessor, the Draft Report on ALGOL 68 which was
sent out in February 1968 to 1000 members of the "computing community")
created at the time quite a stir in Computer Science: Many people found
it extremely formal, and therefore unreadable. Others were enchanted by
its precision and by the elegance and power of the language described.
Most people of course never read it, but were convinced by others that it
was unreadable.
Tutorial documents were written by Lindsey & van der Meulen on the
language, by Cleaveland and Uzgalis on the grammatical formalism. The
language was implemented, but very slowly because the art of
compilermaking was not advanced enough, because there was no official
industrial interest and because implementation was usually seen as an
interesting academic exercise, rather than the production of a useful
compiler. Some completed implementations (I am reciting from memory,
without consulting my heap of documentation):
- Currie ea, RRE, Malvern 1970
ALGOL68R one-pass subset, used extensively in military and scientific
circles in Britain on ICL machines
- Zoethout ea, CDC Netherlands 1974
Full implementation, used mainly in teaching in Germany and the
Netherlands on CDC mainframes
- Hibbard ea, UK and Carnegie Mellon 1976
Algol68S large one-pass subset, ported onto many small machines like
pdp11, used (as far as I know) mostly in teaching and as a vehicle for
ideas.
- Mailloux ea, Edmonton, Canada 1978
FLACC full language Algol 68 Chechout compiler, an interpreter for the
full language, available on IBM mainframes and used in teaching, both
in North America and in Europe
- Bourne ea, Cambridge (uk) 1980
ALGOL68C nearly complete implementation of full language on IBM
mainframes
- Lindsey ea, Manchester (uk), 1984
full ALGOL68 compiler for small machines, including PC.
As you can see, hardly any of these implementations are on machines which
are available today.
A number of languages were implemented which were deeply influenced by
ALGOL 68 but did not try to be compatible, illegitimate children as it
were. I shall mention:
- RTL2, a real-time language which found wide acceptance in British
industry. Available on a motley lot of process control computers.
- ELAN, an educational language defined in Germany in 1974, which was
implemented in 1978 in Bielefeld by Reiner Hahn ea, later at the GMD
in Bonn made into a full-blown multi-user environment for educational
use on microcomputers (EUMEL).
I myself implemented Elan on microcomputers (MSDOS and UNIX computers).
Elan was used in the eighties in teaching at many secondary schools in
West-Germany, Belgium and even The Netherlands, until the bureaucrats
found out that it is not Pascal. There is a collection of books about
Elan and its educational use, including a textbook in English published
by Wiley ("Top-Down Programming" by C.H.A. Koster).
At present I am using Elan, extended with polymorphy, in teaching
systematic programming at my university.
An interesting observation is the fact that the two-level formalism used
in the description of ALGOL 68 by itself led to a number of programming
languages, including PROLOG (Colmerauer) and my own CDL family (Compiler
Description Language). A number of related formalisms have been introduced
over the years, including:
- Extended Affix Grammars (EAG) D.A. Watt 1974, of which we have a nice
implementation. Suitable for the specification and prototyping of
languages.
- Affix Grammars over a Finite Lattice (AGFL) C.H.A. Koster 1990, used
for the morphosyntactic description of natural languages.
ALGOL 68 was the first (and possibly one of the last) major language
for which a full formal definition was made before it was implemented.
Other languages for which a formal description exists have either been
formalized after-the-fact (like PL/1 and ADA) or are not more than
academic exercises. In the next volume of "history of programming
languages" a long article by Charles Lindsey should appear, concerning the
stormy history of ALGOL 68.
My own conclusion is that ALGOL68 was ahead of its time. It never was much
of a practical success, but it was a "succes d'estime". It has had an
inspiring influence on many people (roughly, on all those who have ever
programmed in it) and, less obviously, on subsequent developments, even
though only C++ and the Bourne shell today remain to show any syntactic
and semantic traces of it.
C.H.A. Koster, 180994
Dept Comp Sci
University of Nijmegen
The Netherlands
kees@cs.kun.nl
การแปล กรุณารอสักครู่..