Computing Science
Total Page:16
File Type:pdf, Size:1020Kb
COMPUTING SCIENCE Reminiscences of Whetstone ALGOL Brian Randell TECHNICAL REPORT SERIES No. CS-TR-1190 February, 2010 TECHNICAL REPORT SERIES No. CS-TR-1190 February, 2010 Reminiscences of Whetstone ALGOL B. Randell Abstract These reminiscences centre on the implementation, by Lawford Russell and myself, of an ALGOL 60 compiler for the English Electric KDF9 Computer in the early 1960s. However details are also given of preceding work on so-called "automatic programming", and of other contemporary ALGOL compiler projects. © 2010 University of Newcastle upon Tyne. Printed and published by the University of Newcastle upon Tyne, Computing Science, Claremont Tower, Claremont Road, Newcastle upon Tyne, NE1 7RU, England. Bibliographical details RANDELL, B Reminisences of Whetstone ALGOL [By] B. Randell Newcastle upon Tyne: University of Newcastle upon Tyne: Computing Science, 2010. (University of Newcastle upon Tyne, Computing Science, Technical Report Series, No. CS-TR-1190) Added entries UNIVERSITY OF NEWCASTLE UPON TYNE Computing Science. Technical Report Series. CS-TR-1190 Abstract These reminiscences centre on the implementation, by Lawford Russell and myself, of an ALGOL 60 compiler for the English Electric KDF9 Computer in the early 1960s. However details are also given of preceding work on so- called "automatic programming", and of other contemporary ALGOL compiler projects. About the author Brian’s earliest work, during the period 1957-1964 while he was at English Electric, was on compilers. This led to the book: Algol 60 Implementation . (Co-author L. J. Russell). Academic Press, London, 1964. He then joined IBM T.J. Watson Research Center, Yorktown Heights, N.Y. where, with an intervening year during 1965-66 in California, he worked on high performance computer architectures (the ACS Project), then on operating systems and system design methodology. During this time, and shortly after he returned to the UK to become Professor of Computing Science at the University of Newcastle upon Tyne. He was co-editor of the reports on the two NATO Software Engineering Conferences. In 1971 Brian set up the project that initiated research into the possibility of software fault tolerance, and introduced the "recovery block" concept. Subsequent major developments included the Newcastle Connection, and the prototype distributed Secure System. He has been Principal Investigator on a succession of research projects on system dependability funded by the Science Research Council (now Engineering and Physical Sciences Research Council), the Ministry of Defence, the European Strategic Programme of Research in Information Technology (ESPRIT), and the European Information Society Technologies (IST) Programme. Most recently Brian has performed the role of Project Director for CaberNet (the IST Network of Excellence on Distributed Computing Systems Architectures) and for two IST Research Projects, MAFTIA (Malicious- and Accidental-Fault Tolerance for Internet Applications) and DSoS (Dependable Systems of Systems). Subsequently he was involved with the RODIN IST project, and the ReSIST IST Network of Excellence . Brian’s current computing science research continues to be focused on Dependability (for example on failure analysis) and, to a lesser extent, on the History of Computing. Suggested keywords COMPILERS KDF9 ALGOL 60 E.W. DIJKSTRA ! '$($2 ( 2!)!!# 323)( !./01/! # !D@3#!.(($5 1217!)!!3# !4&$3$)(!)!!3# !./01/!E@!1 0)13!! ?@!.5( !1)"1''$("!0 $&$23!01)40!! #$%!&'(!! @)'043 1!@)(2 153$)(!)$ 37! #4127!AC3#!F(417!B@A@! ?1$(!( &&!!F1$(81( &&9(&884%G! M 623& !($5 12$37 ! ! )!*#+!',-(%!.-/0!1/22(3(!,$!"456!78!9$32,+'!92(1&-,1!&/!:-/3-#0!$;12(#-!-(#1&/-! 1/%(+!/$!<9=>9?!@',+!*#+!#&!&'(,-!A&/0,1!B/*(-!<,C,+,/$!,$!D'(&+&/$(E!F;+&!/;&+,%(! G(,1(+&(-?!H/*(C(-E!)!.,-+&!+:($&!&'(!+;00(-!*,&'!)IJ!#&!&'(,-!0#,$!G/$%/$!/..,1(+E! *',1'!*(-(!,$!D,30/-(!K&-((&E!7(',$%!K(2.-,%3(+!<(:#-&0($&!K&/-(?! A&!)IJ!)!:-/3-#00(%!#$%!/:(-#&(%!#!L5M!1/0:;&(-E!#&!&'(!&,0(!)IJN+!/$28! 1/0:;&(-!,$!&'(!=O?!@'(,-!L5M!*#+!:-/;%28!,$+(%!7(',$%!2#-3(!:2#&(!32#++! *,$%/*+E!*'(-(!,&!#&&-#1&(%!3-(#&!#&&($&,/$!.-/0!&'(!:#++(-+!78?!A.&(-!&'(!+2((P! 2,$(+!/.!&'(!L5ME!*,&'!,&+!+,0:2(!#$%!+&-#,3'&./-*#-%!:-/3-#00,$3!.#1,2,&,(+E!#$%!,&+! 32/++8!:-,$&(%!%/1;0($&#&,/$E!&'(!<9=>9N+!*/-P0#$2,P(!1#7,$(&-8E!,&+!7,$#-8Q2(C(2! :-/3-#00,$3E!#$%!,&+!%;:2,1#&(%!#$%!+&#:2(%!&8:(*-,&&($!0#$;#2+E!1#0(!#+!-#&'(-!#! +'/1P!&/!0(!*'($!)!#--,C(%!#&!D'(&+&/$(!,$!&'(!#;&;0$!/.!"456?! @'(!<9=>9E!9$32,+'!92(1&-,1N+!.,-+&!1/0:;&(-E!*#+!2#-3(28!7#+(%!/$!A2#$!@;-,$3N+! "4R5E!,?(?!:/+&QI2(&1'2(8!B#-PE!:2#$+!#&!SBG!./-!&'(!A>9!1/0:;&(-!T@;-,$3!"4R5U?!)&! &'(-(./-(!%,..(-(%!3-(#&28!.-/0!F;+&!#7/;&!#22!,&+!1/$&(0:/-#-,(+E!7/&'!I-,&,+'!#$%! A0(-,1#$?!@'(!#$1(+&-8!/.!&'(+(!/&'(-!0#1',$(+!1/;2%!#22!7(!&-#1(%!7#1P!0/-(!/-! 2(++!%,-(1&28!&/!&'(!*/-P!/.!C/$!S(;0#$$!#$%!',+!1/22(#3;(+!/$!&'(!%(+,3$!./-! 9<VA>!#&!&'(!J//-(!K1'//2!/.!&'(!=$,C(-+,&8!/.!B($$+82C#$,#!TC/$!S(;0#$$!"4R5U?! )$!:#-&,1;2#-E!<9=>9N+!%(+,3$!(0:'#+,+(%!1/0:;&#&,/$!+:((%!#$%!'#-%*#-(! (1/$/08?!@'(!#++;0:&,/$!*#+!&'#&!:-/3-#00(-+!*/;2%!7(!*,22,$3!#$%!#72(!&/!&#P(! .;22!#%C#$(!/.!&'(!0#1',$(N+!C(-8!2/*Q2(C(2!./-0!/.!:-/3-#00,$3?!@',+!,$C/2C(%! */-P,$3!,$!7,$#-8E!#$%!%,-(1&28!1/$&-/22,$3!&'(!&,0,$3!/.!7-,$3,$3!/:(-#$%+!&/! .;$1&,/$!;$,&+!#$%!/.!,$,&,#&,$3!&'(!/:(-#&,/$!/.!&'(+(!;$,&+!W!,$!(..(1&!#!./-0!/.!*'#&! 2#&(-!1#0(!&/!7(!P$/*$!#+!0,1-/:-/3-#00,$3?!@'(!(..(1&!*#+!&'#&E!,$!&'(!'#$%+!/.! #$!(X:(-&!:-/3-#00(-E!<9=>9!1/;2%!1/$+,%(-#728!/;&:(-./-0!/&'(-!1/0:;&(-+!/.! 7#+,1#228!+,0,2#-!'#-%*#-(!+:((%?!! )!#$%!#!.(22/*!0#&'+!3-#%;#&(!.-/0!)0:(-,#2!>/22(3(E!J,P(!O(228E!*'/!F/,$(%! D'(&+&/$(!#&!&'(!+#0(!&,0(!#+!0(E!+//$!1#0(!&/!-(3#-%!<9=>9!*,&'!#..(1&,/$E!(C($! #+!#!3,#$&!&/8?!K/!*(!%,%!$/&!1/$.,$(!/;-!:-/3-#00,$3!&/!$;12(#-!-(#1&/-!1/%(+E!7;&! ,$+&(#%E!/$!/;-!/*$!,$,&,#&,C(E!*-/&(!$;0(-/;+!%(0/$+&-#&,/$!:-/3-#0+E!#$%! ! "! +&#-&(%!,$C(+&,3#&,$3!'/*!*(!1/;2%!3(&!<9=>9!&/!'(2:!*,&'!+/0(!/.!&'(!0/-(! %(&#,2(%!12(-,1#2!#+:(1&+!/.!,&+!/*$!:-/3-#00,$3?!! <9=>9!*#+!,$!.#1&!$/&!/$28!%,..,1;2&!&/!:-/3-#0E!,&!*#+!#2+/!C(-8!%,..,1;2&!&/!1/0:,2(! ./-?!J/+&!/.!&'(!&'($Q(X,+&,$3!#,%+!&/!:-/3-#00,$3!<9=>9!*(-(!,$&(-:-(&(-+!-#&'(-! &'#$!1/0:,2(-+?!@'(!(..(1&,C($(++!/.!&'(+(!,$&(-:-(&(-+!%(:($%(%!/$!&'(!1/+&!/.!&'(! ,$&(-:-(&#&,/$!2//:!-(2#&,C(!&/!&'(!C#2;(!/.!&'(!,$%,C,%;#2!,$&(-:-(&(%!/:(-#&,/$+?! @';+!SBGN+!,$&(-:-(&(-!1/$&-/22,$3!(X(1;&,/$!/.!#!+(&!/.!Z(..,1,($&28!'#$%Q1/%(%[! 2,$(#-!#23(7-#!-/;&,$(+!*#+!C(-8!1/+&!(..(1&,C(E!#$%!7(,$3!#2+/!1/$C($,($&!*#+! '(#C,28!;+(%!T\/7,$+/$!"4LMU?!A&!&'(!/&'(-!($%!/.!&'(!+:(1&-;0!*#+!A2:'#1/%(E!#$! ,$&(-:-(&(-!&'#&!'#%!7(($!%(C(2/:(%!./-!#!+,0:2(!2#$3;#3(!./-!.2/#&,$3!:/,$&!+1#2#-! #-,&'0(&,1!T<($,+/$!"4LMU?!@',+!*#+!$/-0#228!;+(%!/$28!./-!+0#22!/$(Q/..! 1#21;2#&,/$+!+,$1(!:-/3-#0+!*-,&&($!,$!,&!*(-(!&8:,1#228!/-%(-+!/.!0#3$,&;%(!+2/*(-! &'#$!&'(!(];,C#2($&!'#$%Q/:&,0,+(%!0#1',$(!1/%(?! @'(!.#1&!&'#&!<9=>9E!2,P(!#22!&'(!(#-2,(+&!0#1',$(+E!%,%!$/&!'#C(!#$8!7;,2&Q,$!.2/#&,$3Q :/,$&!#-,&'0(&,1!*#+!C(-8!+,3$,.,1#$&?!@'(-(!*(-(!+;7-/;&,$(+!./-!&'(!C#-,/;+!7#+,1! .2/#&,$3Q:/,$&!#-,&'0(&,1!/:(-#&,/$+?!I;&!,$!&'(!,$&(-(+&+!/.!(..,1,($18!0#$8! 1#21;2#&,/$+!*(-(!2#7/-,/;+28!:-/3-#00(%!;+,$3!.,X(%Q:/,$&!#-,&'0(&,1?!)$%((%!*(! :-/3-#00(-+!-(3#-%(%!&'(!;+(!/.!.2/#&,$3!:/,$&!#20/+&!#+!1'(#&,$3E!#$%!&'(!1/0,$3! /.!'#-%*#-(!.2/#&,$3!:/,$&!#+!0/-(!/.!#!1'#22($3(!&'#$!#$!/::/-&;$,&8?!A3#,$+&!&',+! 7#1P3-/;$%!J,P(!#$%!)!1#0(!;:!*,&'!#!1/0:-/0,+(!+/2;&,/$!&'#&!&//P!#%C#$(!/.! +/0(!:(1;2,#-!<9=>9!'#-%*#-(!.(#&;-(+!,$!/-%(-!&/!:-/%;1(!#!C(-8!.#+&!,$&(-:-(&(-E! #27(,&!F;+&!./-!.,X(%Q:/,$&!1/0:;&#&,/$+?!ZA+!)!-(1#22!,&E!&'(!0#,$!2//:!/.!/;-! ,$&(-:-(&(-!'#%!/$28!.,C(!,$+&-;1&,/$+E!*'(-(#+!0/-(!1/$C($&,/$#2!,$&(-:-(&(-+! &8:,1#228!(0:2/8(%!2//:+!,$C/2C,$3!.,.&8!&/!#!';$%-(%!,$+&-;1&,/$+?[!<(+:,&(! 0#$#3(0($&!/::/+,&,/$!W!#$%!,$%((%!&'-(#&+!/.!%,+0,++#2!W!*(!:-(++(%!/$!*,&'!/;-! ,%(#+E!#$%!0#,$28!,$!/;-!/*$!&,0(!%(C(2/:(%!#!+8+&(0E!*',1'!*(!1#22(%!9AK)>^<9! TO(228!#$%!\#$%(22!"4LME!"4LYU?!! 9AK)>^<9!*#+!+/!+;11(++.;2E!:#-&,1;2#-28!#0/$3!&'(!+1,($&,+&+!#$%!($3,$((-+!*'/! *(-(!&'(!0#,$!1/0:;&(-!;+(-+!#&!D'(&+&/$(E!&'#&!78!&'(!&,0(!&'(!O<_4!1#0(!/$&/! &'(!'/-,`/$E!)!*#+!,$!1'#-3(!/.!#!+0#22!aA;&/0#&,1!B-/3-#00,$3!<(:#-&0($&b?! G#*./-%!\;++(22!'#%!F/,$(%!0(E!-(:2#1,$3!J,P(!O(228!*'/!'#%!2(.&!./-!:#+&;-(+!$(*! #&!)IJ!Z*'(-(!'(!:;&!',+!3-(#&!1/%,$3!+P,22+!&/!%(C(2/:,$3!&'(!0,1-/1/%(!./-!*'#&! 7(1#0(!&'(!K8+&(0!cLMdRM[?!J/-(/C(-E!&'(-(!*#+!.;22!0#$#3(0($&!+;::/-&!./-!;+! &/!(X(-1,+(!/;-!+P,22+!#$%!($&';+,#+0+!/$!&',+!(X1,&,$3!$(*!1/0:;&(-?! ^$(!,0:/-&#$&!#+:(1&!/.!/;-!($C,-/$0($&!*#+!&'#&!*(!*(-(!*/-P,$3!,$!C(-8!12/+(! :-/X,0,&8!&/!&'(!;+(-+!/.!/;-!:-/3-#0+E!#$%!'#%!(X&($+,C(!(X:(-,($1(!/.!/:(-#&,$3! /;-!/*$!#$%!/&'(-!:(/:2(N+!:-/3-#0+!/$!&'(!<9=>9?!D(!&'(-(./-(!'#%!%(C(2/:(%! +&-/$3!Z+(2.Q%(.($+,C([!C,(*+!/$!&'(!$((%!./-!:-/3-#0+!&/!7(!-/7;+&!W!,$!&'(!.#1(!/.! ,$:;&E!/:(-#&/-!#$%!'#-%*#-(!(--/-+E!#$%!./-!&'(0!&/!:-/C,%(!0(#$,$3.;2!.((%7#1P! &/!;+(-+!*'($(C(-!:/++,72(?!ZG,&&2(!%,%!)!P$/*!&'#&!+;1'!(X:(-,($1(+!#$%!C,(*+! */;2%!+&-/$328!,$.2;($1(!0/+&!/.!08!+;7+(];($&!1#-((-E!$/&!F;+&!/;-!:2#$+!./-! O<_4?[! ! Y! O<_4!*#+!#!.2/#&,$3!:/,$&!0#1',$(E!*,&'!#!+(&!/.!"L!',3'!+:((%!-(3,+&(-+E!/-3#$,+(%! #+!#!+0#22!#-,&'0(&,1!+P!/-!:;+'%/*$!+&/-(E!&/3(&'(-!*,&'!#$/&'(-!+(&!#1&,$3!#+!#! :;+'%/*$!+&/-(!./-!+;7-/;&,$(!-(&;-$!#%%-(++(+?!K/!,&!*#+!C(-8!%,..(-($&!.-/0! <9=>9E!#$%!,$%((%!#22!/&'(-!1/0:;&(-+?!ZK;:(-.,1,#228!,&!'#%!+,0,2#-,&,(+!*,&'!&'(! 1/$&(0:/-#-8!I;--/;3'+!I5MMME!7;&!,$!.#1&!,&!:-(+($&(%!#!C(-8!%,..(-($&!#$%!'#-%(-! 1'#22($3(!&/!1/0:,2(-!*-,&(-+!&'#$!&'(!I5MMM?[!)$%((%E!#+!*,&'!<9=>9E!1#-(.;228!