Dartmouth ALGOL 30
   HOME

TheInfoList



OR:

Dartmouth ALGOL 30 was a 1960s-era implementation, first of the
ALGOL 58 ALGOL 58, originally named IAL, is one of the family of ALGOL computer programming languages. It was an early compromise design soon superseded by ALGOL 60. According to John Backus The Zurich ACM-GAMM Conference had two principal motives in pro ...
programming language and then of ALGOL 60. It is named after the computer on which it ran: a Librascope General Precision (
LGP-30 The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, was an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California (a division of General Precision Inc.), and s ...
) desk-size computer acquired by
Dartmouth College Dartmouth College (; ) is a private research university in Hanover, New Hampshire. Established in 1769 by Eleazar Wheelock, it is one of the nine colonial colleges chartered before the American Revolution. Although founded to educate Native ...
in 1959. Since the limited size of the
LGP-30 The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, was an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California (a division of General Precision Inc.), and s ...
(4K 30-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 ''
thunk In computer programming, a thunk is a subroutine used to inject a calculation into another subroutine. Thunks are primarily used to delay a calculation until its result is needed, or to insert operations at the beginning or end of the other subr ...
s'' and integer labels. 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. This simple fact was not published until some years later by David Gries. 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). 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. To enable wider use, Garland and Knapp developed a "load-and-go" system known as SCALP, a ''S''elf ''C''ontained ''AL''gol ''P''rocessor, 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 The Dartmouth Time-Sharing System (DTSS) is a discontinued operating system first developed at Dartmouth College between 1963 and 1964. It was the first successful large-scale time-sharing system to be implemented, and was also the system for wh ...
in 1965. ALGOL 30 was the basis for an implementation in 1965 of ALGOL 60 on the
Dartmouth Time Sharing System The Dartmouth Time-Sharing System (DTSS) is a discontinued operating system first developed at Dartmouth College between 1963 and 1964. It was the first successful large-scale time-sharing system to be implemented, and was also the system for wh ...
. Several years later, Sidney Marshall produced an implementation of ALGOL 68.Sidney Marshall, ''Preliminary Report on an ALGOL 68 Implementation'', Kiewit Computation Center, Dartmouth College, December 1, 1969.


References

{{Reflist


External links


The Papers of Stephen J. Garland
at Dartmouth College Library

of (and links to) technical memoranda concerning ALGOL 30 and SCALP 1962–1964 Dartmouth College history ALGOL 60 dialect Procedural programming languages