ALGOL

I recently created an ALGOL section at the Computer History Museum‘s Software Preservation Group web site, covering the language standardization efforts — for ALGOL 58 (also known as the International Algebraic Language), ALGOL 60, and ALGOL 68 — and also covering many implementations, dialects, and offshoots, complete with source code, manuals, and papers for many of these. The history of ALGOL has attracted many writers, and the final section of the web site links to many of their papers.

The ALGOL 58/60 implementations for which I’ve been able to find source code for include:

  • Burroughs 205 (Knuth)
  • Burroughs 220 (Erdwinn et al.)
  • Burroughs B-5500
  • DEC PDP-10 (Habermann et al.)
  • Electrologica X1 (Dijkstra and Zonneveld – Mathematisch Centrum)
  • Electrologica X8 (Kruseman Aretz – Mathematisch Centrum)
  • Electrologica X8 (Bron et al. – Technische Hogeschool Eindhoven)
  • Elliot 803 (Hoare et al.)
  • English Electric Whetstone (Randell and Russell)
  • G.E.C. process control computer (Higman)
  • Regnecentralen GIER (Naur et al.)
  • Stantec Zebra (van der Mey – Netherlands PTT)

The appendices to Maurice Halstead’s book Machine-Independent Programming (Spartan Books, 1962) contain compiler source listings of Neliac (an ALGOL 58 dialect) for the UNIVAC M-460, IBM 704, and CDC 1604.

I also found compiler source code and listings for several versions of ALGOL W.

I’ve just gotten started looking for ALGOL 68 implementations.

I welcome your comments, corrections, and suggestions for the ALGOL web site.

12 thoughts on “ALGOL”

  1. Are you only interested in implementations for old computers? GNU Algol, otherwise called Marst, is a full implementation of Algol 60 (the modified report) that translates it into C, and there is the NASE Algol 60 interpreter as well.

  2. John,

    I’m especially interested in old implementations. For completeness, I’ll probably add GNU Algol/Marst and the NASE Algol 60 interpreter. Thanks very much for mentioning them.

    Paul

  3. Old compilers must died. Try to make new compiler for Algol family. Algol 68 genie has critical errors, so you have chance to make good compiler.

  4. Algol 68 Genie is in continuous development. Many are using it to run either vintage programs or new code. If someone thinks it contains a “critical error”, please report it to me so it can be corrected. The quality of open source software depends on useful feedback of its users.

    Thank you,
    Marcel

  5. UPDATE 11 Jul 2015: project moved from code.google.com to github.com.

    As a member of the SPG, you may already be aware of this, but over the past two years Nigel Williams and I have been developing an emulator for the Burroughs B5500. It runs the Burroughs Extended Algol dialect quite well, including the MCP operating system and the Algol-based ESPOL language used to write it. Our emulator is written in Javascript and presently works with both the Mozilla Firefox and Google Chrome web browsers.

    Sid McHarg has also written an emulator for the B5500. He had a set of Burroughs Mark XIII release tapes from 1971 that proved to be readable after 40 years, and has arranged with Unisys, the successor to Burroughs, to offer an educational/hobbyist license for the software. We are presently using that software with our emulator.

    The emulator and Burroughs software are available through our open-source project at https://github.com/pkimpel/retro-b5500/ [formerly http://code.google.com/p/retro-b5500/]. The site has a wiki with instructions on setting up and using the emulator. There are also links to a hosting site for the emulator and some utilities, a “getting started” index into the wiki, a web forum, and a project blog.

    Prior to Sid’s tapes becoming available, we started down the hard road of manually transcribing source code from listings on bitsavers.org. Nigel transcribed the Mark XVI Algol compiler source, Hans Pufal transcribed ESPOL, and I have transcribed (but not proofed) the Mark XVI MCP. I then ported a large subset of Algol and ESPOL to the modern Unisys MCP Algol dialect for use as cross-compilers for the B5500, which work, but which we ended up not using very much. A few other transcription efforts have been completed, including Gary Kildall’s APL interpreter from 1971, and more are either in progress or planned. Most of this transcription is Algol code, and all of it is posted on the project site.

    Next up: an emulator for the Electrodata/Burroughs 205 and reconstruction of Donald Knuth’s Algol 58 compiler.

  6. Perhaps related to the PDP-8 Algol: there is a PDP-11 Algol-60, I have a copy buried somewhere, will dig. It was distributed by DECUS (mostly in binary form). It feels like a 16-bit subset of Burroughs Algol, and in fact the generated code is a form of P-code that appears to be inspired by the machine code for Burroughs mainframes.

  7. By the way, since you mentioned the X8 — does anyone have a copy of the THE operating system sources? That would be one of the most significant dusty decks imaginable.

  8. Yes, there is a listing of Edsger Dijkstra’s THE operating system, along with many other treasures. Back in 2007, Randall Neff (a Computer History Museum volunteer) borrowed a number of listings and documents from Don Knuth and scanned them for the Museum. This document is an index, with links to the individual scans:

    http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/KnuthDigitalArchive-Index.html

    Search for “THE Operating System” — you’ll find several related items, including an Algol 60 compiler for the THE system.

Comments are closed.