Algol 58 implementations and dialects
ALGO for Bendix G15
- Anonymous. ALGO : Algebraic Compiler for the BENDIX G-15 General Purpose Digital Computer.Bendix Computer Division of The Bendix Corporation, Manual T21, August 1960, 28 pages. PDF at piercefuller.com
"Algo follows the principles laid down for the universal algebraic computer language, Algol, proposed for international use by computer organizations in America and abroad.
The Bendix Corporation is happy to cooperate with the Assocation for Computing Machinery and with the other members of the Algol committee in being the first manufacturer to introduce a programming system patterned on their proposal."
- Anonymous. ALGO Operating Instructions. Bendix Computer Division of The Bendix Corporation, Manual T-22, January 1961, 24 pages. PDF at acms.synonet.com
- Anonymous. Programming notes for the ALGO system. Bendix Computer Division of The Bendix Corporation, Technical Applications Memorandum Number 72, 27 March 1961, 12 pages. PDF at acms.synonet.com
- See also:
ALGOL 30 for LGP-30 (Dartmouth College)
- T. E. Kurtz. BASIC. In History of Programming Languages I, R. L. Wexelblat, Ed., pages 515-537, 1981. ACM Digital Library
"At the same time E. T. Irons, then a graduate student at Princeton, spent the summer in Hanover while working on a syntax-directed compiler (Irons, 1961). Our attention was thus drawn to the International Algebraic Language known also as ALGOL 58. A group of four students (Stephen Garland, Robert Hargraves, Anthony Knapp, and Jorge Llacer) and I began to design and construct an ALGOL 58 compiler for the LGP-30. A paper (Samelson and Bauer, 1960) discussing what is now known as bottom-up parsing, provided the efficient scanning algorithm needed for a slow and small computer. Shortly, ALGOL 60 appeared (Naur, 1960), and our effort shifted to it.
Since the limited size of the LGP-30 precluded a full implementation of ALGOL 60, certain of its features (arrays called by value, own arrays, strings, variable array bounds, and recursion) were omitted; but we did include parameters called by name, using "thunks" (Ingerman, 1961; Irons and Feurzeig, 1961), and integer labels. We dubbed our work ALGOL 30, since it was for the LGP-30 (Kurtz, 1962a, Feb., 1962b, Mar.)."
- T. E. Kurtz. ALGOL for the LGP-30, a comparison. Dartmouth Computation Center, Hanover, New Hampshire, February 1962.
- T. E. Kurtz. ALGOL-30 system operating instructions. Procedure Manual CCM-5, Dartmouth College Computation Center, Hanover, NewHampshire, March 1962.
"Burroughs had this computer called the 205, which was a drum machine that had 4000 words of memory instead of 2000, and they needed a compiler for it. ... I said I’ll write you an ALGOL compiler for $5,000, but I can’t implement all of ALGOL. I think I told them I can’t implement all of ALGOL for this; I am just one guy. Let’s leave out procedures -- subroutines. Well, this is a big hole in the language! Burroughs said, “No, no -- you got to put in procedures.” I said, “Okay, I will put in procedures, but you got to pay me $5,500.” That’s what happened." [Don Knuth, CHM Oral History, 2007, page 9]
- Donald Knuth. The Internals of ALGOL 205. Undated (1960?), 43 pages. Computer History Museum, Lot X4100.2007. PDF at computerhistory.org
- Anonymous. The Burroughs Algebraic Compiler for the 205 : Programmers Manual. Bulletin 3041, Burroughs Corporation, Pasadena, California, February 1961. Copy belonging to Tom Sawyer. PDF
- Donald Knuth. Listing of ALGOL 205. January 20, 1961, 66 pages. Computer History Museum, Lot X4100.2007. PDF at computerhistory.org
- Donald Knuth. Coding Form. Handwritten coding sheets for Burroughs 205 ALGOL. Signed "don knuth" and dated "1960-1961". Computer History Museum, Lot X4100.2007. PDF at computerhistory.org
- Donald Knuth. Burroughs Algebraic Compiler for the 205. Burroughs Corporation publication no. 205-21003-D (Detroit, Michigan, October 1961), 30 pp. [Donald Knuth Curriculum Vitae, publication R10]
- Tom Sawyer. History of the Burroughs/Datatron 205.
Sawyer used a 205 at the University of Portland in the 1960s, and has written extensively about the machine and its history.
- Paul Kimpel. retro-205 Emulator project.
Kimpel has written an emulator for the Burroughs 205, and has been able to execute two versions of Knuth's Algol 58 compiler on the emulator. Kimpel reconstructed one version from the late-stage development listing Knuth donated to the Computer History Museum; the other version was from a listing belonging to Tom Sawyer of a numeric dump of a production binary tape. Unfortunately the first version lacks the entire library, and the second version contains only the first overlay of the library.
"I’m in my second year at Cal Tech, and I was a consultant to Burroughs. After finishing my compiler for Burroughs, I joined the Product Planning Department. The Product Planning Department was largely composed of people who had written the best software ever done in the world up to that time, which was a Burroughs ALGOL compiler for the 220 computer. That was a great leap forward for software. It was the first software that used list processing and high level data structures in an intelligent way. They took the ideas of Newell and Simon and applied them to compilers. It ran circles around all the other things that we were doing." [Don Knuth, CHM Oral History, 2007, page 9]
- Anonymous. Burroughs Algebraic Compiler. Reference manual, Burroughs Corporation.
- A Reference Manual. Bulletin 220-21011-D, January 1961, 97 pages. PDF at bitsavers.org
- BAC-220, Revised Edition. Bulletin 220-21017, March 1963, 122 pages. PDF at bitsavers.org
"The February 1962 compiler system, described in this Reference Manual, includes a generator with the ability to produce a compiler conforming to any Burroughs 220 system installation."
- The Burroughs Algebraic Compiler. Source listing.
- J. Erdwinn, J. Merner, F. Crowder, J. Speroni, D. Knuth. May 1, 1961, 117 pages. PDF at bitsavers.org
- Erdwinn, Merner, Crowder, Speroni, Knuth, Dahm, Oliphint, Logemann, Schuman. February 1, 1962, 267 pages. Computer History Museum, Lot X4100.2007. PDF at computerhistory.org
Contents: Generator, page 1; Compiler, page 53; Overlay, page 161; Standard Library, page 217.
- Robert B. Forest. BALGOL at Stanford. Datamation, Volume 7 (December 1961), pages 24-26.
- Robert V. Oakford and James M. Gere. An Introduction to BALGOL. Wadsworth Pub. Co., Belmont, Calif., 1961.
"By now, I concluded that I would have to learn much more about computers, at a hands-on level. The opportunity was engendered by the evangelistic efforts of Al Bowker and George Forsythe to establish an intellectual and technical base for, and broaden interest in, computers throughout the Stanford campus. In company with the development of a new division, then department, of Computer Science, and of a campus-wide computer center, elementary programming courses were organized. I enrolled in the BALGOL (Burroughs Algol) course given by Bob Oakford, over the summer of 1962. This had much of the flavor of a course in English for fresh immigrants, the class having a very broad distribution of age and of academic status, specialty and sophistication." [Joshua Lederberg. How DENDRAL Was Conceived and Born. In Proceedings of ACM Conference on History of Medical informatics (Bethesda, Maryland, United States, November 05 - 06, 1987). B. I. Blum, Ed. ACM, New York, NY, pages 5-19. ACM Digital Library]
- Robert L. Smith. SUBALGOL Reference Manual. Computation Center, Stanford University, October 1965. Catalog entry at computerhistory.org
- George E. Forsythe. Welcoming remarks to ACM Programming Languages and Pragmatics Conference, San Dimas, California, August 1965, Communications of the ACM, Volume 9, Number 3 (March 1966), pages 137-138. ACM Digital Library
- See also Waychoff 1979.
- See also CBI OH 98 1985.
- See also Piggot: BALGOL and SUBALGOL (Stanford University BALGOL)
JOVIAL (Systems Development Corporation)
"At Systems Development Corporation, programming systems had to be developed for a large command and control system based on the IBM military computer (ANFSQ32). The resulting Algebraic language with fairly elaborate data description facilities was JOVIAL (Jules Schwartz' own Version of the International Algebraic Language). By now compilers for JOVIAL have been written for the IBM 7090, the Control Data 1604, the Philco 2000, the Burroughs D825, and for several versions of IBM military computers." [Rosen 1964, page 7]
- JOVIAL interpreter system - FN document series; System Development Corporation, Paramus, New Jersey.
- Jules I. Schwartz. JOVIAL - A Description of the Language. FN-LO-31-2, February 1, 1960. PDF at bitsavers.org
- K. E. Petersen. Documentation of the JOVIAL Interpreter System. FN-LO-196, November 25, 1959. PDF at bitsavers.org
- K. E. Petersen. A Users' Manual for the JOVIAL Interpreter System. FN-LO-197, February 1, 1960. PDF at bitsavers.org
- W. J. Olson. Computer Operator's Manual for the JOVIAL Interpreter System. FN-LO-198, February 1, 1960. PDF at bitsavers.org
- C. J. Caso. System Specifications for the JOVIAL Interpreter System. FN-LO-199, February 1, 1960. PDF at bitsavers.org
- R. J. Banser. Program Design Specification for the Test Control Program (JTCPZ) : A Sub-program of the JOVIAL Interpreter System. FN-LO-200, February 1, 1960. PDF at bitsavers.org
- Jules I Schwartz. Program Design Specification for the Interpreter First Pass (JALLZ) : A Sub-program of the JOVIAL Interpreter System. FN-LO-201, February 1, 1960. PDF at bitsavers.org
- W. J. Olson. Program Design Specification for the Assemble Baby COMPOOL Program (JABCZ) : A Sub-program of the JOVIAL Interpreter System. FN-LO-202, February 1, 1960. PDF at bitsavers.org
- C. J. Caso. Program Design Specification for the Data Simulation Program (JSTRZ) : A Sub-program of the JOVIAL Interpreter System. FN-LO-203, February 1, 1960. PDF at bitsavers.org
- E. Foote. Program Design Specification for Interpreter Second Pass (JOLIZ). FN-LO-204, February 1, 1960. PDF at bitsavers.org
- K. J. Theting and R. L. Small. Program Design Specification for the Data Processing Program (JDSYZ) : A Sub-program of the JOVIAL Interpreter System. FN-LO-205, February 1, 1960. PDF at bitsavers.org
- M. Kahn. Program Design Specification for the Assemble Master COMPOOL Program (JAMCZ) : A Sub-program of the JOVIAL Interpreter System. FN-LO-206, February 1, 1960. PDF at bitsavers.org
- S. Gopoian. Program Design Specification for the System Tape Loading Program (JMSTZ) : A Sub-program of the JOVIAL Interpreter System. FN-LO-207, February 1, 1960. PDF at bitsavers.org
- A. A. Selinka. Discrepancy Reporting and Correction Procedure for the JOVIAL Interpreter System. FN-LO-208, February 1, 1960. PDF at bitsavers.org
- C. J. Shaw. The JOVIAL Manual. System Development Corporation.
- Part 1: Computers, Programming Languages, and JOVIAL. TM-555, Part 1, December 20, 1960, 24 pages. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- Part 2, Revision 1: The JOVIAL Grammar and Lexicon. TM-555/002/01, June 9, 1961. PDF at bitsavers.org
- Part 3: The JOVIAL Primer. TM-555/003/00, December 26, 1961. PDF at bitsavers.org
- Millard H. Perstein. Grammar and Lexicon for Basic JOVIAL. TM-555/005/01, System Development Corporation, July 4, 1968, 124 pages. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- Millard H. Perstein. Implementation of JOVIAL in SSRL. TM-555/200/00, System Development Corporation, December 18, 1961, 124 pages. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- C.J. Shaw. A Programmer's Introduction to Basic JOVIAL. TM-629, System Development Corporation, August 7, 1961, 39 pages. Original mimeograph with printed covers. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- E. Book, H. Bratman, and J. Schwartz. JOVIAL-X.2, The Language of the One-Pass JOVIAL Compiler, TM-970/002/00, System Development Corporation, January 31, 1963. PDF at bitsavers.org
- C. J. Shaw. Jovial - A Programming Language for Real-time Command Systems. Annual Review of Automatic Programming, Volume 3 (1963) pages 53-119. ScienceDirect
- C. J. Shaw. Jovial and its documentation. Communications of the ACM, Volume 6, Number 3 (March 1963), pages 89-91. ACM Digital Library
- C. J. Shaw. A specification of JOVIAL. Communications of the ACM, Volume 6, Number 12 (December 1963), pages 721-736. ACM Digital Library
- C. J Shaw. A Comparative Evaluation of JOVIAL and Fortran IV. N-21169, internal working paper, System Development Corporation, January 7, 1964, 27 pages. Blueprint. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- E. Book, M. Bleier, and H. Bratman. The CORE Subset of the JOVIAL Language, TM-1682/002/00, System Development Corporation, January 7, 1964, 13 pages. Blueprint. Inked annotation on cover notes that CORE is "Now called J5". Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- Ronald C. Houts. Considerations Leading to the Selection of JOVIAL for ADSAF Programming. Automatic Data Field Systems Command, Fort Huachuca, Arizona, September 1965. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- See also Progopedia.com: Jovial
MAD (University of Michigan)
"The University of Michigan developed a compiler for a language called Mad, the Michigan Algorithmic Decoder.26-27 They were quite unhappy at the slow compiling times of Fortran, especially in connection with short problems typical of student use of a computer at a University. Mad was originally programmed for the 704 and has been adapted for the 7090. It too was based on the 1958 version of Algol." [Rosen 1964, page 7]
- Arden, B. W., Galler, B. A., and Graham, R. M. 1961. The internal organization of the MAD translator. Communications of the ACM, Volume 4, Number 1 (January 1961), pages 28-31. ACM Digital Library
- Bernard A. Galler. The Language of Computers. McGraw-Hill Publishing Company, 1962.
- Brice Carnahan. An Introduction to Digital Computers and the MAD Language. University of Michigan. Online at umich.edu
- R. J. Flenner and J. Flenner. A User's Reference Manual For The Michigan Algorithm Decoder (MAD) For the IBM 7090. Digital Computer Laboratory, Graduate College, University of Illinois, 1962, 221 pages. PDF at bitsavers.org
"The bulk of the information contained in this manual was taken from the manual of the Michigan Algorithm Decoder (MAD) of February, 1962, written by Bruce Arden, Bernard Galler and Robert Graham Graham of the Computing Center of the University of Michigan."
- R. M. Graham. MAD I for CTSS. FAP assembly language source code, February 1964. Online at www.cozx.com/~dpitts
- Files com3/mad01.fap, com3/mad02.fap, and com3/mad03.fap in CTSS Source archive. .tar.gz
- Bruce W. Arden. The Michigan Algorithm Decoder (The MAD Manual), Revised Edition 1966. PDF at umich.edu
- MAD (Michigan Algorithm Decoder) 1960-1979 [series]. Boxes 31-34, Computing Center (University of Michigan) records, Bentley Historical Library, University of Michigan. Finding aid at umich.edu
- Box 31: correspondence, developer's notes, manuals, programmer's notes.
- Boxes 32-34: oversided MAD code printouts.
- See also http://en.wikipedia.org/wiki/MAD_programming_language
"The Naval Electronics Laboratory at San Diego was getting a new Sperry Rand Computer, the Countess. With a variety of other computers installed and expected they stressed the description of a compiler in its own language to make it easy, among other things, to produce a compiler on one computer using a compiler on another. They also stressed very fast compiling times, at the expense of object code running times, if necessary. The language was called Neliac, a dialect of Algol. Compilers for Neliac are available on at least as great a variety of computers as for JOVIAL." [Rosen 1964, page 7]
- H. D. Huskey, M. H. Halstead, and R. McArthur. NELIAC -- a dialect of ALGOL. Communications of the ACM, Volume 3, Number 8 (Aug. 1960), pages 463-468. ACM Digital Library
- Robert L. Johnsen, Jr. Implementation of NELIAC for the IBM 704 and IBM 709 Computers. Technical Memorandum TM-428, U.S. Navy Electronics Laboratory, San Diego, California, September 26, 1960, 67 pages. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- Maurice H. Halstead. Machine Independent Computer Programming. Spartan Books, 1962.
- Harry D. Huskey. Machine Independence in Compiling. In: Symbolic languages in Data Processing : Proceedings of symposium organized and edited by the International Computation Center, Rome, March 26-31, 1962. Gordon and Breach, New York, 1962, pages 219-228. PDF
- B. Randell. Review of “Machine Independent Computer Programming” by M. H. Halstead. APIC Bulletin, Issue 17, Automatic Programming Information Centre, College of Technology, Brighton, 1963, pages 39-41.
- C.J. Shaw. A Comparative Evaluation of JOVIAL and NELIAC. Field Note FN-6609, System Development Corporation, Santa Monica, California, June 5, 1962, 26 pages. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- Ralph Edwin Love, Jr. Computer Simulation: A Simulation Language and Example. MSc Thesis, Electrical Engineering, University of California, Berkeley, 1962. PDF
- Anonymous. A NELIAC Compiler for the IBM 709-7090, April 1, 1962. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- Anonymous. A NELIAC Compiler for the IBM 709-7090. January 1963, 48 pages. Computer History Museum Lot X3762.2007. Donated by Mark Halpern.
- Dean W. Lawrence. NELIAC Programming Primer for U-490. Accession Number AD410072, U.S. Naval Ordnance Test Station, China Lake, California, May 1963. PDF at dtic.mil
- Anonymous. NELIAC Users Guide: UNIVAC 1107-1108 NELIAC, Lockheed Missiles & Space Co., Sunnyvale, Calif. (Mar., 1966).
"This report will attempt to present a short analysis of the general characteristics and history of the development of NELIAC as written for the IBM 704-709 by the author and Wes Landen of Army Signal Corps, Fort Huachuca, Arizona. It further contains a summary of the language and its usage, with examples, followed by a short sample program and the actual compiler itself written in an intermediate form of its own language."
Appendices give source code for NELIAC C (UNIVAC M-460 Countess), NELIAC 704 (IBM 704), and NELIAC 1604 (CDC 1604), as well as for a decompiler for the M-460.
Describes BC NELIAC as a language appropriate for writing simulators, and as an example describes a simulator for the Intercom 500 machine. Appendixes E and F are BC NELIAC source programs: an assembler and a simulator for Intercom 500.
"In the fall of 1955, we [Bauer and Samelson, at Munich University] had already started a joint project on designing a universal language for program exchange; this was stimulated somewhat later by plans that Springer-Verlag, Heidelberg, had about publishing a handbook of algorithms. From the beginning, we intended to build appropriate compilers; this became inevitable when we heard rumors that Piloty’s plans for PERM II had been dropped. Our compiler design was based on our stack principle and on Rutishauser’s experience [at ETH in Zürich] with run time organization. We were soon joined by Hermann Bottenbruch from Alwin Walther’s institute in Darmstadt.
As mentioned above, in 1956 Rutishauser, Samelson, and myself started the design of a compiler with a single language for machines as different as the Munich PERM, Zurich ERMETH, and (later) the Mainz Z 22 ('ZMMD-Project'). Compiler design and programming language design went hand in hand. In the fall of 1957, we had the plans ready which allowed us to approach the ACM. This led to the Zurich Conference in May 1958. Our input (Bauer and others 1958) to this international joint effort was a direct consequence of the cellar principle of state transition, which, originally meant for (arithmetic) formulas, was extended to the whole language and was expressed in the form 'postpone as long as necessary, reduce as soon as possible.' But we aimed not only at having the language restricted so that it could be parsed 'sequentially' by a pushdown technique, which turned out equivalent to requiring a context-free grammar, but also postulated to attach the semantics to the syntax. ...
For ALGOL 58, the ZMMD compilers worked by the end of 1958. Following the ALGOL Conference in Paris in January 1960 that produced ALGOL 60, we had adapted our compilers in Mainz, Zurich, and Munich within a few months. The ALCOR group (Samelson and Bauer 1962), formed after the 1959 Paris Congress, expanded rapidly. The members were given the available ZMMD material on translation methods, and they began their own work on compilers. The undertaking had considerable commercial and educational effect." [Bauer 1990]
- K. Samelson and F. L. Bauer. Sequentielle Formelübersetzung. Elektronishe Rechenanlagen, Volume 1, Number 4 (1959), pages 176-182.
- English translation published as: Sequential formula translation. Communications of the ACM, Volume 3, Number 2 (February 1960), pages 76-83. ACM Digital Library
- See also ALCOR.
"Rutishauser  was first in recognizing that an effective solution of the programming problem requires introducing conventional notation (commonly called "problem oriented language" today) into programming and having the computer do all subsequent phases of translation work. His proposal published in 1952  and the subsequent work of Böhm  found no immediate response. The first large scale programming systems with formula translating features, PACT  and FORTRAN , were developed as late as 1955. Methods used, however, were not published at that time. At about the same time the computer group at the Technische Hochschule in Munich, fully acquainted with Rutishauser's ideas, started discussions of the subject of formula translation. However, interest was centered on methods feasible for computers far inferior in capacity and speed to, say, the IBM 704. For this purpose a sequential translating technique based on independent previous investigation [6, 13] was developed. Since 1957 work was continued within the framework of today's ZMMD (Zűrich-Munich-Mainz-Darmstadt) group. The basic aim was development of a common language (and translator system) for different computers. This finally led to the creation of a joint committee of the ACM and the GAMM, which in 1958 proposed a common algorithmic language--ALGOL [11, 12]. In the meantime the structure of the translator of the ZMMD group was frozen, and coding of the system (called ALCOR = ALGOL COnverteR) for the computers involved (ERMETH Zűrich, PERM Munich, Z 22/2002 Mainz, 650/DERA Darmstadt) and for a number of computers in cooperating scientific institutions in Austria, Germany, and Denmark was begun. Pilot models of the translator have been working satisfactorily in Mainz, Munich, and Zűrich since the fall of 1958."