Bibliography: Kleine, "Historic documents in computer science and engineering"
Karl Kleine, “Historic documents in computer science and engineering”: http://www.fh-jena.de/~kleine/history/
Languages
FORTRAN
- Fortran Automated Coding System For the IBM 704 the very first Fortran manual, by John Backus, et al., Oct. 1956 Al Kossow has in his manual collection also an IBM 704 manual, if you want to have a look at the machine that this original Fortran language was made for. Also the next IBM manuals are from the collection at his web site, where you can find a number of Fortran manuals, for many machines of various manufacturers.
- The FORTRAN II General Information Manual and IBM 7090/7094 Programming Systems: FORTRAN II Programming are two IBM manuals of 1963 describing the FORTRAN II language.
- IBM 7090/7094 Programming Systems: FORTRAN IV Language, 1963, and IBM System 360 and System 370 FORTRAN IV Language, 1974. FORTRAN IV was next to the ANSI standard of 1966 for long time the reference language for Fortran as used by legions of scientists and engineers.
- ANSI Fortran66 and Fortran77 standards, obsoleted by the Fortran90 and Fortran95 standards, but still handy for reading legacy code.
Algol 60
- 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 Extended Algol and ESPOL
- 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 67
- 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.
Algol 68
- 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.
Algol-W
- 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.
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 and Modula-3
- 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.
PL360
- 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.
Bliss
- Bliss Language Guide by digital equipment corp., 2nd edition, january 1980, for Bliss-11, Bliss-32, and Bliss-36, and the VAX-11 Bliss-32 User’s Guide of 1980, for VAX/VMS V2. Finally, the BLISS pocket guide
BCPL
- 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.
C
- 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!
C++
- 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!
PL/I
- “Fat” programming languages aren’t new, and the prototypical example without doubt is PL/1. Here is the IBM PL/I (F) Reference Manual of 1969. For modern PL/I see IBM PL/I family library, where you can download pdf files of current manuals. For your convenience I mirrored the PL/I for MVS&VM Language Reference and associated Programming Guide of 1995 here.
ML/1
- The ML/1 Macro Processor (original manual in pdf, resp. html and introduction) by P.J. Brown is to a large extent forgotten today. See also P. Herzog’s ML/1 web page with implementations in C and also for Win32.
- more to follow in due time…. keep watching this site
Programming and Software Systems
Flowcharts (or is it flaw charts? :-)
- Once upon a time, flowcharts and coding sheets were the prime tools of a programmer. Have a look at
- Flowcharting Techniques, an IBM manual of 1969
- DIN 66001 of 1966
- flowchart templates: [ ][71] [ ][73] [ ][75]
- coding sheets: IBM /360 assembler, Fortran
NATO Software Engineering conferences
- OCRed and reformatted reports of the two NATO working conferences Garmisch, 1968 and Rome, 1969, mirrored from Brian Randell’s web page. He was editor of the original reports and made available these versions, as people keep asking for them. See also some pictures from the conferences at his web pages.
The stack patent by Bauer and Samelson
- F.L. Bauer and K. Samelson invented a a scheme using a pushdown stack for the translation and interpretation of arithmetic expressions, documented in the german patent DE1094019, filed march 30th, 1957, as well as the american counterpart US3047228, and FR1204424 and GB892098 for France and England, and there is a Swedish patent also. They also published an artikel “Sequentielle Formelübersetzung” about it, with a translation “Sequential Formula Translation” which appeared in the CACM, vol.3 (1960), pp.76-83.
Links…
- collected manuscripts of Edsger W. Dijkstra (the famous EWD series)
Machines and Networks: Architecture and Implementation
- Konrad Zuse’s attempt to patent his computer Patentanmeldung Rechenvorrichtung of 1941 (in German)
- But the German patent office said “Nein!”. More on the UNESCO Memory of the World nomination page for this patent. See also the Konrad Zuse web pages by his son Horst Zuse of Berlin Technical University!
- John von Neumann’s First Draft of a Report on the EDVAC
- Moore School of Electrical Engineering, University of Pennsylvania, June 30th, 1945 mirrored from M.D. Godfrey’s web page at Stanford, where he also offers a companion paper The Computer as von Neumann Planned It.
The ENIAC patent
- Eckert, Mauchly Electronic Numerical Integrator And Computer US patent 3120606, filed June 26th, 1947, awarded Feb. 4th, 1964
The Ethernet patent
- Metcalfe, Boggs, Thacker, Lampson, Multipoint data communication system with collision detection US Patent 4063220, filed Mar. 31st 1975, awarded Dec. 13th 1977
- Metcalfe’s famous sketch may not be missing here. And then there is of course the joint ethernet specification by Digital, Intel, and Xerox (V1 of Sept. 1980, and V2 of Nov. 1982). Later ethernet specs are IEEE standards in the 802 series.