Algol 60 implementations and dialects — Software Preservation Group (original) (raw)

Document Actions

ALCOR

"Tom Sobosky prepared notes from my talks about ALGOL 60 at the 1960 summer session on ‘Advances in Programming and Artificial Intelligence,’ Chapel Hill, North Carolina. An earlier version of this report was published in the proceedings of this summer session. A. A. Grau and L. L. Bumgarner helped in preparing this first version by making valuable comments and corrections. The present version incorporates further suggestions and corrections by W. Börsch-Supan, A. S. Householder, F. L. Bauer, K. Samelson, and W. R. Busing. I wish to thank all of these gentlemen."

ALGOL-20 for Bendix G-20/G-21 (Carnegie Institute of Technology)

ALGOL 30 for LGP-30 (Dartmouth College)

See Stephen Garland: Algol for the LGP-30 for an overview.

See also SCALP.

ALGOL W

Based on the proposals to IFIP Working Group 2.1 by Niklaus Wirth and C. A. R. Hoare. See Wirth 1965,Hoare 1965, and Wirth and Hoare 1966. For retrospectives, see: Wirth 1985 and Wirth 1996.

Applications

ALPHA

Atlas Algol for the Atlas Computer (I.T.C. Limited)

"The Atlas ALGOL compiler provided by I.C.T. Ltd. was written using the Compiler Compiler of Brooker and Morris (1963). The compiler is basically a two-pass one producing reasonably efficient code without spending too much time in compilation. It loads a set of precompiled permanent procedures as though they had been defined in the block surrounding the actual program." [Hopgood and Bell 1967]

Atlas Autocode for the Atlas Computer (Manchester University) and KDF9 (University of Edinburgh)

"The British ‘Autocode’ languages have their genesis in R.A. Brooker’s early compiler for the Ferranti Mark I at Manchester [Brooker58]. Its successor, Mercury Autocode, also due to Brooker, added major new language features such as ‘for’ loops. Mercury Autocode then begat Atlas Autocode, seen by its proponents as a more practical alternative to Algol 60. It has nested scopes, like Algol, but passes parameters by reference, like FORTRAN. At Edinburgh University Atlas Autocode was bootstrapped from the Atlas to their KDF9 [BRSW65]. KDF9 Autocode was then used to write the compiler for an improved and modernised Autocode, IMP [Stephens74]. IMP is aimed at systems programming, and was used to write the portable EMAS multiaccess system, initially for the EE System 4-75." [[Findlay 2021](#Findlay 2021)]

Source code for KDF9 compiler

For details, see:

BC ALGOL for IBM 7094 (UC Berkeley)

BC ALGOL ran under the FORTRAN Monitor System on the coupled IBM 7040-7094 system at the UC Berkeley Computer Center. It consisted of a translator (also called the pre-processor) and an interpreter (also called the processor). The output of translator was called the syllable string. The translator was written in BC NELIAC.

Burroughs B 5000/B 5500 Series

Burroughs B 6000/B 7000, B 5900, A Series, and later Unisys systems

Control Data Corporation

Coral (Royal Radar Establishment)

"Coral 66 is a general-purpose programming language based on Algol 60, with some features from Coral 64 and Jovial, and some from Fortran. It was originally designed in 1966 by I. F. Currie and M. Griffiths of the Royal Radar Establishment in response to the need for a compiler on a fixed-point computer in a control environment. In such fields of application, some debasement of high-level language ideals is acceptable if, in return, there is a worthwhile gain in speed of compilation with minimal equipment and in efficiency of object code. The need for a language which takes these requirements into account, even though it may not be fully machine independent, is widely felt in industrial and military work. We have therefore formalized the definition of Coral 66, taking advantage of experience gained in the use of the language. Under the auspices of the Inter-Establishment Committee for Computer Applications, we have had technical advice from staff of the Royal Naval Scientific Service, the Royal Armament Research and Development Establishment, the Royal Radar Establishment, the Defence ADP Training Centre, from serving officers of all three services and from interested sections of industry, to whom all acknowledgments are due. The present definition is an inter-service standard for military programming, and has also been widely adopted for civil purposes in the British control and automation industry. Such civil usage is supported by RRE and the National Computing Centre in Manchester, on behalf of the Department of Industry. The NCC has agreed to provide information services and training facilities, and enquiries about Coral 66 for industrial application should be directed to that organization." [Ministry of Defence 1974]

CPL

Dartmouth Algol (General Electric GE-235)

Data General Extended ALGOL 60

Algol 60 for the 16-bit Nova and Eclipse families of computers.

Paper tapes of runtime library for Data General Extended ALGOL 60

Source code

Documentation

Sorry It Took So Long (advertisement)

Nuance Newsletter

Nuance: Newsletter for Users of ALGOL on Nova Computers and Eclipses was edited by Dr. Arend van Roggen of DUPONT Experimental Station.

Digital Equipment Corporation DECsystem-10/20

Gordon Bell notes that DEC contracted with Nico Habermann at Carnegie Mellon University to write the PDP-10 Algol compiler. [Personal communication, May 11, 2010]

Electrologica X1 (Mathematisch Centrum)

"In the summer of 1960 Edsger W. Dijkstra and Jaap A. Zonneveld put into operation the very first ALGOL 60 compiler in the world. Its code was never documented. This report contains the full assembly text of one of the latest versions of that compiler (from 1964)." [Kruseman Aretz 2003]

"If every subroutine has its own private fixed working spaces, this has two consequences. In the first place the storage allocations for all the subroutines together will, in general, occupy much more memory space than they ever need simultaneously, and the available memory space is therefore used rather uneconomically. Furthermore-and this is a more serious objection-it is then impossible to call in a subroutine while one or more previous activations of the same subroutine have not yet come to an end, without losing the possibility of finishing them off properly later on.

We intend to describe the principles of a program structure for which these two objections no longer hold. In the first place we sought a means of removing the second restriction, for this essentially restricts the admissable structure of the program; hence the name 'Recursive Programming'. More efficient use of the memory as regards the internal working spaces of subroutines is a secondary consequence not without significance. The solution can be applied under perfectly general conditions, e.g. in the structure of an object program to be delivered by an ALGOL 60 compiler. The fact that the proposed methods tend to be rather time consuming on an average present day computer, may give a hint in which direction future design might go."

Electrologica X8 (Mathematisch Centrum)

Applications

Electrologica X8 (THE: Technische Hogeschool Eindhoven)

Elliot 803

Elliot 503

EMAS ALGOL for ICL 2900 (University of Edinburgh)

English Electric Company KDF9

The English Electric KDF9 computer was announced in 1960 and went into service in 1964. There were two Algol 60 compilers written for it, named after the two facilities where the compilers were written, Kidsgrove and Whetstone. The compilers were meant to accept a common language (see "ALGOL Programming for KDF 9" below), but the Kidsgrove compiler produced optimized machine code while the Whetstone compiler offered fast compile time.

English Electric Company Kidsgrove Algol

English Electric Company Whetstone Algol

EULER for IBM 704/7090, Burroughs B 5000/B 5500, and DEC PDP-10

"Efforts to identify and combine the essential and fundamental concepts of programming languages, in particular of ALGOL 60, led to Wirth's dissertation under the guidance of Prof. H. D. Huskey at the University of California at Berkeley, and to the definition of the language Euler. The language was implemented on the IBM 704 computer. After publication the project was continued at Stanford University and resulted in an improved implementation on the Burroughs B5000 computer. This work led the foundation for the method of the microprogrammed, stack-oriented interpreter, first tested on an IBM 360/30 computer. This method became widespread much later and was to play a key role in the implementation of high-level languages on microcomputers. Another important aspect of this research was the development of efficient, general parsing methods, and the systematic coupling of semantic interpretation with syntactic analysis. The so-called precedence grammars originated in the context of this project." [Wirth at ethz.ch]

Formula Algol for Bendix G-20/G-21 (Carnegie Institute of Technology)

"Formula Algol was dedicated to the linguistic pun that the elementary operations can be regarded as operating on numbers or on formulas. The idea was that if a variable x has no value, then operations on expressions involving x must be regarded as operating on the formula. A few programs could be written, but the pun proved an inadequate basis for substantial programs." [McCarthy 1980]

"... Finally in my opinion the best answer to a heckle ever was delivered by Alan Perlis. He was giving a talk on a language he had designed and implemented at CMU, called Formula Algol. Roughly speaking, the language glued together Algol and the data type for symbolic formulas. This was way ahead of its time; today this is essentially what systems like Maple do, but of course not with Algol. The gluing together was messy and complex, making the resulting language not very usable. During the talk Perlis got interrupted by an audience member, who stood up, and started to read a list of questions. They were all of the form: Why did you do X in Formula Algol? Each question hit right on an issue with the language—it was not a good mating between Algol and formulas. After listening to several questions Alan interrupted and said, 'Do you want me to answer?' But the questioner just keep reading more of his list. Finally Perlis could take it no longer and repeated 'Do you want me to answer?' The questioner reluctantly said 'Okay.' Perlis then said: 'Poor design.' He then proceeded to finish his talk." [Richard Lipton, 2011]

GE Research and Development Center (GE 600)

G.E.C.

"The one other ALGOL compiler I can recall knowing about in those days was an amazing effort by Brian Higman, for an incredibly small machine, an experimental process control computer being developed by G.E.C. whose total memory capacity was 512 20-bit words." [Randell 2010]

IBM System/360

ICL 1900 (#XALT, #XALE, and #XALV)

IMAG (Institut de Mathématiques Appliquées de Grenoble)

Mailüfterl ALGOL (IBM Laboratory Vienna)

Bekič notes that the Mailüfterl Compiler correctly handles Knuth's "Man or boy" test.

"Bauer had promised us that we'd get documents which make it trivial to write a compiler -- which, of course, was a wrong assumption. And fortunate, I would say, it was too, because by this way, my next guy, the programmer of the team, Mr. Lucas, really had to dig deep into the art of programming languages and compiler writing. He developed special principles and we ended up by having not only an ALGOL compiler, but also a (smaller) LOGALGOL compiler."

MANIAC III

MARST ALGOL 60-to-C translator (GNU)

NASE ALGOL 60 interpreter

ODRA 1204

The ODRA 1204 was a small scientific computer designed and built by ELWRO in Wrocław, Poland. See:

Wikipedia contributors. Odra (computer). Wikipedia, The Free Encyclopedia. March 21, 2013, 23:27 UTC. Available at: https://en.wikipedia.org/wiki/Odra_(computer).

PSYCO for CDC 1604 (IDA: Institute for Defense Analysis)

Regnecentralen DASK

"An Algol 60 compiler for Dask was completed in September 1961." [datamuseum.dk]

Regnecentralen GIER

"The compiler for Gier, based on a novel multipass design, was ready in August 1962." [datamuseum.dk]

Rogalgol (RHA Minisystems)

S-algol

SCALP for LGP-30 (Dartmouth College)

A single-pass ALGOL 60 subset prepared by Stephen J. Garland and Anthony W. Knapp. See Stephen Garland: Algol for the LGP-30 for an overview.

SDS 900 series (Scientific Data Systems)

Source code

Documentation

SHARE for IBM 7090/7094

Simula

SMALGOL

SMIL (Lunds Universitet, Lund, Sweden

"SMIL Sweden
Torgil Ekman, Leif Robertsson, Avd. for Numerisk Analys, Lunds Universitet, Lund, Sweden.
Translator for SMIL: March 1962; 1.5 man years; true subset; not recursive procedures, not arrays of variable length." [Naur 1962]

"Torgil Ekman developed an Algol 60 compiler (without recursive procedures) for the SMIL computer, a clone of BESK, in Lund [Eckman 1962]. His supervisor was Carl-Erik Fröberg and his work was furthered by interactions with the Gothenburg and Copenhagen teams [Eckman 1962, page 2]." [Sestoft 2014]

Stantec ZEBRA (Netherlands PTT / Standard Telephones and Cables Limited)

"I have already alluded to the ALGOL compiler designed by Gerrit Van der Mey -- probably the most impressive of the early ALGOL compiler efforts. This was not just because it was the most complete implementation of the language of which I was aware -- it even handled dynamic own arrays and various other unfortunate little complications of the language that just about everybody else avoided tackling. Rather it was because van der Mey, who I met just once when I was taken to his house by Fraser Duncan, was both totally blind and deaf. Yet despite these handicaps, he had almost singlehandledly designed his compiler, though colleagues at the Dr. Neher Laboratorium helped with such debugging as was needed." [Randell 2010]

"I should give credit to another programmer who worked with me for 27 years, and has to be credited with most of the programming work behind Zebra. van der Mey joined me in 1951: he was a maths graduate but the year before he took his doctor's degree he got meningitis. He had been blind from the age of four; at this time he was 30 years old, and he became deaf from the same cause.

He wrote practically all the major programs - the simple code floating point, the double length floating point, Lisp, IPL 5, Algol, and others. Later on he worked on other machines for which he wrote Lisp, the PDP-8, PDP-9, great pieces of Algol implementation, and he worked on theoretical aspects of lambda calculus and combinators in later years. He is now 82 [he died in 2002] and still very strong and a very amiable man. We talked to him through a teleprinter line with a Braille box termination." [van der Poel 1996]

UNIVAC 1107 and 1108

"UNIVAC developed the 1107, its second generation scientific computer, between 1960 and 1962. There was much talk about ALGOL being its primary language. (In 1959, it had even been proposed to develop an ALGOL compiler for UNIVACs LARC supercomputer, but the LARC project was so far over budget that the proposal never got anywhere and the LARC used a modified FORTRAN). At that time, the company's resources were spread very thin, and much of the software development was farmed out. ... development of the FORTRAN and ALGOL compilers was assigned to General Kinetics, a firm in Arlington, VA. General Kinetics ultimately failed to produce either one.

... Case Institute of Technology in Cleveland provided an ALGOL compiler for the EXEC II environment, as part of the arrangement by which it acquired an 1107. The Case Tech compiler was completed in 1964, and computer science students there were trained in ALGOL, rather than FORTRAN. However, FORTRAN was the most widely used language on the 1107.

... In 1965 the Technical Institute at Trondheim, Norway obtained its own 1107 at a discount and began working on a new ALGOL compiler. It was adopted by UNIVAC which named it Norwegian University ALGOL (NU ALGOL). ... NU ALGOL found modest use within the UNIVAC 1100 customer base. The University of Wisconsin, which was making the transition from a Burroughs B5500 to a UNIVAC 1108, developed various extensions to NU ALGOL including the capability of handling ASCII characters in place of the 1108s native Fieldata character set. Wisconsin wrote an e-mail system using NU ALGOL."

« June 2025 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30