Languages

I think, this is the original Peter Naur edition of the Algol 60 report. I remember the typewriter and a second part, which describes the Algol system for the Danish GIER machine, also written by Peter Naur, same typewriter and with section numbers following those of the Algol60 report. The Algol 60 report was also published in the Communications of the ACM. There is a German translation of this original Algol60 report, produced by Kerner and his team in Jena, East-Germany (DDR), and published by Vieweg in West-Germany as a supplement to the journal "Elektronische Rechenanlagen". But what you should really study is the Revised Report on the Algorithmic Language Algol 60, here in a rendition of the Algol Manual der ALCOR Gruppe, together with a report for a subset of the language and the describtion of basic input/output procedures. There is also an online HTML version of the revised report. Note: The IFIP working group WG2.1 on Algol decided early on that they will keep the copyright and that the Algol 60 report shall be free to copy and distribute, independent of some publisher. That was in 1960, long before any word of open source was voiced. It was just proper scientific procedure for such a document. If only standard bodies of today would show such an attitude!

Burroughs (which became a part of UNISYS) adopted and extended Algol 60 and used its Burroughs Extended Algol for nearly all of its software on the B5500 and B6xxx series, which were suitable endowed for the execution of Algol programs, except for some operating system code, which was written in ESPOL, the Executive Systems Problem Oriented Language, which additionally included hardware-near operations.

Simula is a direct descendent of Algol 60 and with its class concept considered the grandma of object oriented programming. It is defined in a document called the Common Base Language.

When IFIP WG 2.1 on Algol discussed the successor language for Algol 60 in 1965, Aad van Wijngaarden brought his proposal Orthogonal design and description of a formal language to the meeting in Grenoble. This paper on two-level grammars split the working group into two camps: The one working on this basis on Algol X, which would become Algol 68, and the other one, which later became the IFIP WG 2.3 on Programming Methodology. As this working paper soon became famous, van Wijngaarden reissued it as report MR76 of the Mathematical Center Amsterdam. Algol 68 Report with the attachment sheet listing the metanotions of the two-level-grammar for your convenience. The first usable Algol 68 system was a subset by the british RRE (Royal Radar Establishment, Malvern), called Algol68-R for the ICL1900 and ICL2900 series machines. Algol 68 Revised Report reformatted and crossreferenced by W. B. Kloke. There is also an official sublanguage of the revised Algol 68 by Peter Hibbard, and an official report on the hardware representation, which makes good reading for the problems of that time with available peripheral equipment and the use of stropping conventions to indicate the kind of symbols in the program text.

When Niklaus Wirth spend some time in Stanford in the mid 60ies there was a /360, but without any compiler of the Algol family. Also at that time, he wrote a paper on record structures together with Tony Hoare, published in the CACM. On the practical side, he defined and implemented the language Algol-W, which can be seen as a direct precursor to Pascal.

Niklaus Wirth defined Pascal in the very first report of the ETH computer science department in 1970. He also implemented it on the CDC6600 computer. The Programming Language Pascal (Revised Report) appeared in November 1972 and layed the foundation for the whole Pascal language movement. This was further helped by Pascal-S, a subset for running student jobs in a quick turn-around batch system. This report contains the whole compiler, written in Pascal, of course. I'm looking for a good copy of Ammann's report on the P-code compiler, the next step to popularize Pascal and making it widely available. I only have dirty and torn xerox copy of that. Whereas Wirth's Pascal was a practical compromise for teaching structured programming of reasonably small programs in a batch environment, a number of derivates appeared rather soon, often very specific to the needs of the various operating environment, and loaded with features, the best known being Turbo-Pascal by Borland. As a reaction to that, there are two ISO standards on Pascal, ISO/IEC 7185:1990 Pascal, and ISO/IEC 10206:1990 Extended Pascal. Any discussion of Pascal would however be incomplete without Brian Kernighan's critique Why Pascal is not my favorite programming language.

Modula-2

Niklaus Wirth, ETH report 36, november 1980 A team at Digital and Olivetti defined a worthy successor: Modula-3 Report (Revised), DEC SRC, november 89, but as usually the case, the actual use and feel of a language is largely determined by available libraries: Some Useful Modula-3 Interfaces, DEC SRC, december 93. The language evolved further and is described on a web page and a pdf snapshot thereof. More recent stuff is found on www.m3.org.

The 1960ies saw a number of approaches to replace assembly language, but nevertheless work close to the machine architecture under the name machine-oriented higher level languages or MOHLL for short. Wirth's PL360 is the best known example. He created it to write the Algol-W compiler at Stanford.

The PL360 Reference Manual (ascii) defines the language. Otherwise, there is Wirth's article PL/360, A Programming Language for the 360 Computers in JACM 15(1), of january 1968, and Richard Guertin has a textbook for his courses at Stanford. After PL360 there have been a number of similar languages, mostly forgotten today.

BCPL is a successor of the CPL, but today mostly remembered as precursor to C. Here is a scan of my copy of Richard's BCPL Reference Manual of 1967 at MIT, but Dennis Ritchie has OCR-ed and edited it as well as written a web page on BCPL. At XEROX PARC BCPL was used for the Alto and other machines, before they embarked on MESA and other languages.

The C Reference Manual by Dennis Ritchie from the 6th edition of Unix operating system, about 1976 is the version that made C known in the research community. It was accompanied by Brian Kernighan's Programming in C - A Tutorial. The compiler for next version of the language came with the 7th edition and the describing document is the original Kernighan & Ritchie The C Programming Language book. More on the History of C you find on Dennis Ritchie's web page!

The initial version of C++ is described in three Bell Labs reports by Bjarne Stroustrup, all from 1984: C++ Reference Manual (CSTR 108), Data Abstraction in C (CSTR 109), and C++ Tutorial (CSTR 113). Just a few pages each -- what a difference to modern C++. For more about C++, look at Bjarne Stroustrup's C++ web page!