Stephen J. Garland Robert F. Hargraves Anthony W. Knapp Thomas E. Kurtz
Developer
Dartmouth College
First appeared
1961; 63 years ago (1961)
Implementation language
Assembly
Platform
LGP-30
OS
None
Influenced by
ALGOL 58, ALGOL 60
Influenced
SCALP for the LGP-30 Algol 60 for the Dartmouth Time Sharing System
Dartmouth ALGOL 30 was a 1960s-era implementation, first of the ALGOL 58 programming language and then of ALGOL 60. It is named after the computer on which it ran: a Librascope General Precision (LGP-30) desk-size computer acquired by Dartmouth College in 1959.
Since the limited size of the LGP-30 (4K 31-bit words) precluded a full implementation of ALGOL 60, certain features (arrays called by value, own arrays, strings, variable array bounds, and recursion) were omitted; but the implementation did include parameters called by name, using thunks[1][2] and integer labels.[3]
ALGOL 30 was implemented by four undergraduate students. Stephen J. Garland wrote the compiler, discovering as a sophomore that compound statements and blocks could be included in the Samelson and Bauer translation algorithm.[4] This simple fact was not published until some years later by David Gries.[5] Robert F. Hargraves, Jorge Llacer, and Anthony W. Knapp developed the run-time system, which included an interpreter for floating-point arithmetic (not supported by the limited instruction set of the LGP-30).[6]
ALGOL 30 was a two-pass system. The first pass loaded the compiler and processed source code typed by the user; it generated intermediate code, similar to relocatable binary, and punched it onto paper tape. The second pass loaded both the run-time system and the intermediate code. Compilations could be "batched," but the delay between entering the source code tape and executing the compiled program were too great to allow widespread student use.[7]
To enable wider use, Garland and Knapp developed a "load-and-go" system known as SCALP, a Self Contained ALgol Processor, for a smaller subset of ALGOL 60 (which did not allow boolean variables or operators, blocks, procedures, own or dynamic arrays, conditional expressions, and step-until for statements). SCALP devoted a third of the LGP's memory to the compiler, a third to the run-time system (which included a floating-point interpreter and numeric functions), and a third for compiled user code. Students prepared source code off-line and punched it on paper tape with a Friden Flexowriter. Compilation occurred almost as quickly as the tape could be read in. This enabled student jobs to be completed in three minutes. Hundreds of students used SCALP before BASIC became available on the Dartmouth Time Sharing System in 1965.[8][9]
ALGOL 30 was the basis for an implementation in 1965 of ALGOL 60 on the Dartmouth Time Sharing System. Several years later, Sidney Marshall produced an implementation of ALGOL 68.[10]
^P. Z. Ingerman, "Thunks: a way of compiling procedure statements with some comments on procedure declarations", Communications of the ACM 4:1, January 1961, pages 55–58.
^E. T. Irons and W. Feurzeig, "Comments on the implementation of recursive procedures and blocks in Algol-60", Communications of the ACM 4:11, January 1961, pages 65–69
^Thomas E. Kurtz, "Basic", History of Programming Languages, Association for Computing Machinery, June 1978, page 516.
^K. Samelson and F. L. Bauer, "Sequential formula translation", Communications of the ACM 3:2, February 1960, pages 76–83.
^(David Gries, "The use of transition matrices in compiling",
Communications of the ACM 11:1, January 1968, pages 26–34.
^ALGOL for the LGP-30, A Comparison, Computation Center, Dartmouth College February 16, 1962.
^Kurtz, loc. cit.
^Kurtz, op. cit., page 517.
^A Manual for SCALP, being a Self Contained Algol Processor for the General Precision LGP-30, CCM-7A, Computation Center, Dartmouth College, January 1, 1964.
^Sidney Marshall, Preliminary Report on an ALGOL 68 Implementation, Kiewit Computation Center, Dartmouth College, December 1, 1969.
and 24 Related for: Dartmouth ALGOL 30 information
ALGOL (/ˈælɡɒl, -ɡɔːl/; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL...
abandoned. It was also implemented at Dartmouth College on an LGP-30, but that implementation soon evolved into ALGOL 60. An implementation for the Burroughs...
language. Kurtz and four students programmed the DartmouthALGOL30 compiler, an implementation of the ALGOL 58 programming language, which two of the students...
ALGOL 60 (short for Algorithmic Language 1960) is a member of the ALGOL family of computer programming languages. It followed on from ALGOL 58 which had...
Dartmouth Time Sharing System, Dartmouth BASIC, and DartmouthALGOL30. As of 2005[update], sponsored project awards to Dartmouth faculty research amounted...
ALGOL W is a programming language. It is based on a proposal for ALGOL X by Niklaus Wirth and Tony Hoare as a successor to ALGOL 60. ALGOL W is a relatively...
Small Machine Algol Like Language (SMALL), is a computer programming language developed by Nevil Brownlee of the University of Auckland. The aim of the...
ALGOL N (N for Nippon – Japan in Japanese) is the name of a successor programming language to ALGOL 60, designed in Japan with the goal of being as simple...
implementation of ALGOL 68, PhD Thesis, Dartmouth College, 1972. Algol 68 Revised Report Black, A. P.; Rayward-Smith, V. J. (1978-05-01). "Proposals for ALGOL H - A...
the Dartmouth Workshop, the Dartmouth Time Sharing System, Dartmouth BASIC, and DartmouthALGOL30. In 2005, sponsored project awards to Dartmouth faculty...
ALGOL 68S is a programming language designed as a subset of ALGOL 68, to allow compiling via a one-pass compiler. It was mostly for numerical analysis...
ABC ALGOL is an extension of the programming language ALGOL 60 with arbitrary data structures and user-defined operators, intended for computer algebra...
correct since Dartmouth did not acquire its first computer until 1959. Keller in fact was at Dartmouth sometime in 1961 when DartmouthALGOL30 was being...
and Calculi, which specified, supports, and maintains the languages ALGOL 60 and ALGOL 68. Between the years 1960 and 1993 he was a member of the editorial...
Elliott ALGOL is a compiler for the programming language ALGOL 60, for the Elliott 803 computer made by Elliott Brothers in the United Kingdom. It was...
which specified, maintains, and supports the programming languages ALGOL 60 and ALGOL 68. In 2004, he was made a Fellow of the Computer History Museum "for...
system and were also used when preparing ALGOL or FORTRAN programs via the DTSS terminals. Some 80% of all Dartmouth students in the late 1960s took two mathematics...
and Calculi, which specified, maintains, and supports the languages ALGOL 60 and ALGOL 68. He became the Professor of Computing Science at the Queen's University...
ALGOL 68C is an imperative computer programming language, a dialect of ALGOL 68, that was developed by Stephen R. Bourne and Michael Guy to program the...
languages ALGOL 60 and ALGOL 68. It attempted to find a "short-term solution to existing difficulties". ALGOL N and ALGOL W were two other ALGOL versions...
"radar", not "real-time". It was influenced primarily by JOVIAL, and thus ALGOL, but is not a subset of either. The most widely-known version, CORAL 66...
around 1963 at the University of Manchester. A variant of the language ALGOL, it was developed by Tony Brooker and Derrick Morris for the Atlas computer...