fbpx
Wikipedia

Dartmouth ALGOL 30

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.

Dartmouth ALGOL 30
ParadigmsMulti-paradigm: procedural, imperative, structured
FamilyALGOL
Designed byStephen J. Garland
Robert F. Hargraves
Anthony W. Knapp
Thomas E. Kurtz
DeveloperDartmouth College
First appeared1961; 63 years ago (1961)
Implementation languageAssembly
PlatformLGP-30
OSNone
Influenced by
ALGOL 58, ALGOL 60
Influenced
SCALP for the LGP-30
Algol 60 for the Dartmouth Time Sharing System

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]

References edit

  1. ^ 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.
  2. ^ 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
  3. ^ Thomas E. Kurtz, "Basic", History of Programming Languages, Association for Computing Machinery, June 1978, page 516.
  4. ^ K. Samelson and F. L. Bauer, "Sequential formula translation", Communications of the ACM 3:2, February 1960, pages 76–83.
  5. ^ (David Gries, "The use of transition matrices in compiling", Communications of the ACM 11:1, January 1968, pages 26–34.
  6. ^ ALGOL for the LGP-30, A Comparison, Computation Center, Dartmouth College February 16, 1962.
  7. ^ Kurtz, loc. cit.
  8. ^ Kurtz, op. cit., page 517.
  9. ^ 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.
  10. ^ Sidney Marshall, Preliminary Report on an ALGOL 68 Implementation, Kiewit Computation Center, Dartmouth College, December 1, 1969.

External links edit

  • The Papers of Stephen J. Garland at Dartmouth College Library
  • Abstract of (and links to) technical memoranda concerning ALGOL 30 and SCALP 1962–1964

dartmouth, algol, 1960s, implementation, first, algol, programming, language, then, algol, named, after, computer, which, librascope, general, precision, desk, size, computer, acquired, dartmouth, college, 1959, paradigmsmulti, paradigm, procedural, imperative. 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 Dartmouth ALGOL 30ParadigmsMulti paradigm procedural imperative structuredFamilyALGOLDesigned byStephen J GarlandRobert F HargravesAnthony W KnappThomas E KurtzDeveloperDartmouth CollegeFirst appeared1961 63 years ago 1961 Implementation languageAssemblyPlatformLGP 30OSNoneInfluenced byALGOL 58 ALGOL 60InfluencedSCALP for the LGP 30Algol 60 for the Dartmouth Time Sharing System 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 References edit 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 External links editThe Papers of Stephen J Garland at Dartmouth College Library Abstract of and links to technical memoranda concerning ALGOL 30 and SCALP 1962 1964 Retrieved from https en wikipedia org w index php title Dartmouth ALGOL 30 amp oldid 1186515894, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.