,,ornl-#cdfj ,,uc-#cb--,ma!matics & ,comput]s ,,tid-#dejj 7#bcrd ed47 ,,! ,,oak ,,ridge ,,algol ,,compil] ,,= ,,! ,,control ,,data ,,corporation #afjd ,,prelim9>y ,,programm]',s ,,manual ,l4 ,l4 ,bumg>n] ,,oak ,,ridge ,,national ,,laboratory op]at$ by ,,union ,,c>bide ,,corporation = ! ,u4,s4 ,,atomic ,,en]gy ,,commission ,pr9t$ 9 ,,usa4 ,price3 #a4be ,available f ! ,(fice ( ,te*nical ,s]vices ,u4 ,s4 ,dep>tm5t ( ,comm]ce ,wa%+ton #be1 ,d4 ,c4 ,,legal ,,notice ,?is report 0 prep>$ z an acc\nt ( ,gov]nm5t sponsor$ "w4 ,nei!r ! ,unit$ ,/ates1 nor ! ,commission1 nor any p]son act+ on behalf ( ! ,commission3 ,a4 ,makes any w>ranty or repres5tation1 express$ or impli$1 ) respect to ! accuracy1 complet5ess1 or usefulness ( ! in=mation conta9$ 9 ?is report1 or t ! use ( any in=mation1 app>atus1 me?od1 or process disclos$ 9 ?is report may n infr+e privately own$ rights2 or ,b4 ,assumes any liabilities ) respect to ! use (1 or = damages result+ f ! use ( any in=mation1 app>atus1 me?od1 or process disclos$ 9 ?is report4 ,z us$ 9 ! above1 8p]son act+ on behalf ( ! ,commission0 includes any employee or contractor ( ! ,commission1 or employee ( su* contractor1 to ! ext5t t su* employee or contractor ( ! ,commission1 or employee ( su* contractor prep>es1 dissem9ates1 or provides access to1 any in=mation pursuant to 8 employm5t or contract ) ! ,commission1 or 8 employm5t ) su* contractor4 ,,ornl-#cdfj ,contract ,no4 ,w-#gdje-;eng-#bf ,ma!matics ,division ,,! ,,oak ,,ridge ,,algol ,,compil] ,,= ,,! ,,control ,,data ,,corporation #afjd--,,prelim9>y ,,programm]',s ,,manual ,l4 ,l4 ,bumg>n] ,,date ,,issu$ ,,jan #cj #aifd ,,oak ,,ridge ,,national ,,laboratory ,oak ,ridge1 ,t5nessee op]at$ by ,,union ,,c>bide ,,corporation = ! ,u4,s4 ,,atomic ,,en]gy ,,commission ,,cont5ts ,i4 ,introduction #a ,,ii4 ,language ,re/rictions #b ,,iii4 ,modes ( ,op]ation ( ! ,compil] #d ,,iv4 ,input-,output & ,int]m$iate ,tape #e ,input-,output #e ,,read #e ,,page #g ,li/s & ! ,li/ ,decl>ation #g ,,pr9t #i ,,write #i ,,pun* #aj ,=mats & ! ,=mat ,decl>ation #aj ,,input #aa ,,output #ab ,int]m$iate ,tape ,proc$ures #ac ,,b9read #ac ,,b9write #ad ,,endfile #ad ,,rew9d #ad ,,backup #ad ,tape-,*eck+ ,proc$ures #ad ,,e( #ae ,,read]r #ae ,,writ]r #ae ,v4 ,! ,ext]nal ,decl>ation #af ,,vi4 ,/&>d ,proc$ures #af ,,vii4 ,error ,*eck+ & ,diagno/ics #ag ,,viii4 ,runn+ ,programs #ai ,,algol ,control ,sy/em #bj ,,eop ,c>d #bj ,compile & ,execute3 ,,algo #ba ,,program ,c>d #bb ,compile_/,execute3 ,,aldap #bb ,,aldap ,control ,/atem5t #bb ,job ,deck3 ,,aldap ,compilation_/,execution #bc ,examples #be ,,app5dices ,a4 ,adjuncts to ,algol #fj #cj ,b4 ,h>dw>e ,repres5tation #cb ,c4 ,/ructure ( ,proc$ure ,call+ ,sequ5ce #ce ,d4 ,int]nal ,repres5tation ( ,/r+s #cg ,e4 ,program ,effici5cy #ch ,f4 ,controv]sial ,features ( ,algol #fj #dj ,g4 ,=tran ,subprograms 9 an ,algol ,program #da ,,! ,,oak ,,ridge ,,algol ,,compil] ,,= ,,! ,,control ,,data ,,corporation #afjd--,,prelim9>y ,,programm]',s ,,manual ,l4 ,l4 ,bumg>n] ,,ab/ract ,?is docum5t is a prelim9>y programm]'s manual = use ( ! ,control ,data #afjd ,algol ,compil]4 ,! compil] 0 con/ruct$ by ! ,programm+ ,rese>* ,gr\p ( ! ,ma!matics ,division 9 coop]ation ) ,control ,data ,corporation4 ,a k ( ,algol #fj is assum$4 ,includ$ are descriptions ( input-output facilities & details = op]ation "u ! monitor sy/em4 ,i4 ,introduction ,?is docum5t is to s]ve z a programm]'s manual = ! ,algol compil] con/ruct$ z a coop]ative project by ,control ,data ,corporation & ! ,ma!matics ,division ( ,oak ,ridge ,national ,laboratory4 ,! compil] is design$ = ! ,control ,data #afjd & #afjd-;,a comput]s4 ,! docum5t is prelim9>y 9 t ! compil] is n ?or\ghly te/$ & may und]go fur!r developm5t4 ,! read] is assum$ to be famili> ) ,algol #fj4 ,! def9+ descriptions are ! two reports on ,algol #fj available 9 ! foll[+ ref]5ces3 #a4 ,p4 ,naur et al1 8,report on ! ,algori?mic ,language ,algol #fj10 ,comm4 ,assoc4 ,comp4 ,ma*41 #c 7#aifj71 ,no4 #e1 #bii-cad4 #b4 ,p4 ,naur et al1 8,revis$ ,report on ! ,algori?mic ,language ,algol #fj10 ,comm4 ,assoc4 ,comp4 ,ma*41 #f 7#aifc71 ,no4 #a1 #a-ag4 ,! second report cle>s up c]ta9 ambiguities t appe>$ 9 ! fir/ report4 ,! reports are n easy read+ = ! novice4 ,! foll[+ expositions are m readable3 #a4 ,baumann1 ,bau]1 ,feliciano & ,samelson1 ,introduction to ,algol1 ,pr5tice-,hall1 ,inc4 7to be publi%$ 9 late #aifc74 #b4 ,bott5bru*1 ,h41 8,/ructure & ,use ( ,algol #fj10 ,j\r4 ,assoc4 ,comp4 ,ma*41 #i 7#aifb71 ,no4 #b1 #afa-bba1 & ,,ornl-#cadh4 ,! ,baumann publication also conta9s ! revis$ ,algol #fj report4 ,?r\gh\t ?is docum5t v>i\s examples ( /atem5ts & decl>ations appe> )\t ! semicolon :i* is always requir$ = sep>at+ !m4 ,?is is to avoid ! implication t ! semicolon is "p ( ! /atem5t or ! decl>ation4 ,9 s5t5ces1 a comma or p]iod may appe> :]e a semicolon or o!r delimit] w\ld be indicat$ 9 ! context ( a program4 ,^w delimit]s r5d]$ 9 bold-face type 9 ! ,algol report are h]e9 indicat$ by und]l9+4 ,,ii4 ,language ,re/rictions ,! compil] correctly h&les programs writt5 9 ,algol #fj subject to ! foll[+ re/rictions4 #a4 ,! use ( an integ] label z an actual p>amet] w cause an incorrect program to be compil$4 #b4 ,a ,,g ,,to /atem5t ) an undef9$ swit* designator z ! designational expression w cause incorrect op]ation ( ! f9al program4 #c4 ,type re/rictions3 7a7 ,! expon5tiation expression x y w h type real unless x is ( type integ] & y is a non-negative integ] con/ant4 ,?is diff]s slightly f ! def9ition 9 ! ,algol report b w g5]ally cause no difficulty4 7b7 ,9 ! con/ruction if clause simple ari?metic expression else ari?metic expression ! ari?metic expressions mu/ h ! same type1 or else an incorrect program w be compil$4 ,= example1 9 ! /atem5t x 3 if a b !n z else w z & w %\ld bo? be decl>$ real or bo? integ]4 7c7 ,9 a proc$ure call 7proc$ure /atem5t or function call7 ea* actual p>amet] hav+ an ari?metic value mu/ h ! same type z ! correspond+ =mal p>amet] 9 ! proc$ure decl>ation4 ,! type ( ! =mal p>amet] is t designat$ 9 ! specification "p if x appe>s !re4 ,if a =mal p>amet] repres5t+ an ari?metic quantity does n appe> 9 ! specification "p1 x is assum$ to be specifi$ real4 ,full use ( specifications is desirable = descriptive purposes & = optimization4 ,caution4 ,re/riction 7c7 is m likely to cause errors ?an ! o!r re/rictions4 ,x is v easy to write ,p7#a1b7 :5 ! p>amet]s ( ,p are specifi$ real1 b incorrect cod+ w result4 ,! call ,p7#a4j1b4j7 works correctly4 #d4 ,/&>d proc$ure names 7see section ,,vi7 us$ z p>amet]s 9 proc$ure calls w cause an incorrect program to be compil$4 ,a call1 !re=e1 su* z ,p7s97 is incorrect4 ,note1 h[ev]1 t a call ( ! type ,q7s97x77 causes no tr\ble4 ,! case ,p7s97 c be programm$ 9 ano!r way4 ,make ! decl>ation real proc$ure s9 #a 7t72 real t2 s9 #a 3 s97t74 ,! call ,p7s9 #a7 is !n correct4 #e4 ,arrays call$ by value are n h&l$4 ,if an array id5tifi] appe>s 9 ! value "p1 an incorrect program w be compil$4 #f4 8,dynamic0 own arrays are n h&l$4 ,?is means t all own arrays are treat$ z hav+ con/ant subscript b\nds2 ?is con/itutes "o possible int]pretation ( ! ,algol #fj report4 ,an own array may be decl>$ ) v>iable subscript b\nds1 b only "o allocation ( /orage w be made1 & if ! b\nds *ange1 ?is w be ignor$4 #g4 ,recursive proc$ures are n h&l$4 ,?is re/riction encompasses all cases ( a function designator appe>+ 9 ! actual p>amet] "p ( a call ( ! same function1 unless t function is a /&>d function4 ,?us f7f7x77 is n p]mitt$ 9 g5]al1 b s97s97x77 is all[$4 ,,iii4 ,modes ( ,op]ation ( ! ,compil] ,!re are two di/9ct modes ( op]ation3 ,,algo & ,,aldap4 ,,algo is a compile-&-execute mode 9 :i* ! two phases _c be sep>at$4 ,! ,algol program is translat$ into a ma*9e language program 9 core memory1 & execution ( ! program imm$iately & automatically foll[s4 ,!re is no assembly program phase4 ,,aldap makes use ( ! ,,codap assembly program facilities4 ,x is possible to compile proc$ures sep>ately & ref]5ce !m f an ,algol program4 ,! proc$ures may be writt5 9 ,algol1 ,,codap or ,=tran4 ,?is provision is made possible ) ! aid ( ! ext]nal decl>ation discuss$ 9 section ,v4 ,! ,,algo mode provides significantly fa/] compilation ?an ! ,,aldap mode = mo/ programs4 ,! t>get programs produc$ 9 ! two modes are ess5tially ! same4 ,9 ! ,,algo mode1 program *eck\t may be done at ! ,algol language level4 ,9 ! ,,aldap mode1 *eck\t may also be done at ! ma*9e & assembly language levels1 & modifications may be made at ^! levels4 ,,iv4 ,input-,output & ,int]m$iate ,tape ,!re are sev5 /&>d proc$ures = input-output1 five = int]m$iate tape1 & ?ree = *eck+ tape conditions4 ,two decl>ations1 =mat & li/1 are additions to ! language4 ,input-,output ,! input-output proc$ures are3 ,,read1 ,,page1 ,,pr9t1 ,,write1 ,,pun*1 ,,input1 & ,,output4 ,,read ,! ,,read proc$ure is us$ to input numb]s & ,boolean values4 ,a ,,read /atem5t has ! =m ,,read 7,v#a1 ,v#b1 4441 ,vn7 :]e n is any positive integ] & ea* ,vk is a v>iable4 ,= example1 ! /atem5t ,,read 7,x1 ,y1 ,a#a1 ,b#a7 w input values into ! f\r v>iables li/$4 ,= input+ values into an array1 a /atem5t su* z ! foll[+ might be us$3 = ,i 3 #a /ep #a until #ajj d ,,read 7,a,i7 4 ,! ,,read proc$ure inputs numb]s & tru? values4 ,a numb] mu/ be a legal ,algol numb] 7al?\gh an ,e may be sub/itut$ = ! symbol 74 ,= input into a ,boolean v>iable1 ! tru? values true & false are accept$2 also1 a non-negative numb] or a plus sign is int]pret$ z false & a negative numb] or a m9us sign is int]pret$ z true4 ,a blank is read z z]o4 ,) ! ,,read proc$ure1 ! type ( a numb] on a data c>d does n h to be ! same z ! type ( ! v>iable to :i* x is assign$4 ,any necess>y type conv]sions are done automatically4 ,if ,n is ! next numb] 9 ! data1 ! /atem5t ,,read 7,v7 is equival5t to ! /atem5t ,v 3 ,n 4 ,! data c>ds are free field4 ,! numb] ( values p] c>d1 ! l5g? ( numb]s1 & ! numb] ( spaces are arbitr>y4 ,a comma1 h[ev]1 mu/ foll[ ea* numb]1 includ+ ! la/ "o on ! la/ data c>d4 ,9 read+ a value into a subscript$ v>iable1 ! curr5t value ( ! subscript expression is n affect$ by t ,,read /atem5t4 ,= example1 9 ! /atem5t ,,read 7,i1 ,a,i7 ! old value ( ,i is us$ 9 ,a,i4 ,! ,,read proc$ure w input data f ! /&>d input m$ium only4 ,,page ,! ,,page proc$ure is us$ to cause a page ejection on ! /&>d output m$ium4 ,,page has no p>amet]s4 ,x is call$ by simply writ+ ,,page 4 ,li/s & ! ,li/ ,decl>ation ,! input & output proc$ures describ$ 9 ! re/ ( ?is section1 z well z ! b9>y read & write proc$ures1 make use ( ! concept ( a li/4 ,a li/#a is a sequ5ce ( expressions4 ,an example is ,u ,v1 ,c#j1 if ,b !n ,x else ,y 4 ,x may be inconv5i5t 9 "s cases to write d[n all ( ! expressions explicitly4 ,! loop expression#a may be us$ z a %or?& device 9 a li/4 ,x is an ,algol-l con/ruction ( :i* ! foll[+ is an example3 = ,i 3 #a /ep #a until #ajjj d ,a,i 4 ,?is is equival5t to ! li/ ,a#a1 ,a#b1 4441 ,a#ajjj 4 ,! entity foll[+ d 9 a loop expression may itself be a li/1 b ?is li/ mu/ be enclos$ 9 p>5!ses if x conta9s m ?an "o memb]4 ,! loop expression = ,i 3 #a /ep #a until #ajjj d 7,a,i1 ,b,i7 is equival5t to ! li/ ,a#a1 ,b#a1 ,a#b1 ,b#b1 4441 ,a#ajjj1 ,b#ajjj 4 ,! loop expression = ,i 3 #a /ep #a until #aj d 7,a,i1 = ,j 3 #a /ep #a until #bj d ,b,i1,j7 is equival5t to ! li/ ,a#a1 ,b#a1a1 ,b#a1b1 4441 ,b#a1bj1 ,a#b1 ,b#b1a1 ,b#b1b1 4441 ,b#b1bj1 444444444444444444444444444444444444 ,a#aj1 ,b#aj1a1 ,b#aj1b1 4441 ,b#aj1bj 4 ,a li/ may be giv5 a "n ?r\gh a li/ decl>ation4 ,a li/ decl>ation has ! =m li/ id5tifi] 3 li/ 4 ,examples are3 li/ ,l 3 ,x1 ,a ,b li/ ,m 3 = ,i 3 #a /ep #a until ,n d ,a,i 4 ,a li/ id5tifi] may itself appe> 9 a li/4 ,"o ( ! above examples might be writt5 ) ! aid ( ! foll[+ decl>ation3 li/ ,l 3 = ,j 3 #a /ep #a until #bj d ,b,i1,j 4 ,! loop expression is !n = ,i3 #a /ep #a until #aj d 7,a,i1 ,l7 4 ,a li/ decl>ation obeys ! same rules ( syntax & scope z d o!r decl>ations4 ,a li/ id5tifi] may be us$ z an actual p>amet] ( a proc$ure call1 ) ! requirem5t t ! correspond+ =mal p>amet] be specifi$ li/4 ,h[ev]1 an actual li/ may appe> z a p>amet] only 9 calls ( ! /&>d proc$ures1 z describ$4 ,,pr9t ,! ,,pr9t proc$ure is us$ to output numb]s 9 a simple1 rigid mann]4 ,a ,,pr9t /atem5t has ! =m ,,pr9t 7li/71 :]e li/ is describ$ above4 ,an example ( a ,,pr9t /atem5t is ,,pr9t 7,a1 if ,n #j !n ,s else ,t74 ,a ,,pr9t /atem5t always puts out at lea/ "o l9e pr9t] image4 ,a l9e may conta9 up to #f numb]s1 ea* ( :i* is 9 sci5tific notation ) #aj decimal places4 ,ea* numb] is "r-ju/ifi$ 9 a field ( #bj columns4 7,! =mat is #f;,e#bj4aj47 ,! above ,,pr9t /atem5t w output two numb]s 9 ! fir/ =ty spaces1 & ! re/ ( ! l9e w be blank4 ,a ,,pr9t /atem5t su* z ,,pr9t 7= ,i 3 #a /ep #a until #aj d ,a,i7 w output "o l9e ( #f numb]s foll[$ by "o l9e ( #d numb]s4 ,s+le spac+ betwe5 l9es is automatic4 ,! ,,pr9t proc$ure always outputs on ! /&>d output m$ium4 ,,write ,! ,,write proc$ure is us$ to output /r+s4 ,examples ( ,,write /atem5ts are3 ,,write 7',,table'7 ,,write 7if ,d #j !n ',,true' else ',,false'7 4 ,ea* p>amet] mu/ be a /r+ expression 7see ,app5dix ,a = def9ition ( /r+ expression74 ,!re may be any numb] ( p>amet]s1 b ea* /r+ w appe> on a sep>ate l9e4 ,if a /r+ is too long to g on "o l9e1 x w be cont9u$ on ! next l9e4 ,a /r+ %\ld n conta9 ano!r /r+4 ,l9es are s+le spac$4 ,ea* ,,write /atem5t causes at lea/ "o l9e pr9t] image to be put out4 ,! ,,write proc$ure always outputs on ! /&>d output m$ium4 ,,pun* ,! ,,pun* proc$ure is us$ to output numb]s on pun*$ c>ds 9 a =m :i* c be input by ! ,,read proc$ure4 ,ea* numb] pun*$ w be foll[$ by a comma4 ,ea* c>d pun*$ may conta9 up to f\r numb]s4 ,ea* numb] w be ( type real1 b s9ce ! ,,read proc$ure makes any necess>y type conv]sions ?is is unimportant4 ,a ,,pun* /atem5t has ! same =m z a ,,pr9t /atem5t4 ,ea* ,,pun* /atem5t causes at lea/ "o c>d image to be put out4 ,! ,,pun* proc$ure always outputs on ! /&>d pun* m$ium4 ,=mats & ! ,=mat ,decl>ation ,! two input & output proc$ures rema9+ to be describ$ make use ( =mats4 ,! =mats are exactly ^? us$ 9 ,=tran1 & read]s unfamili> ) ,=tran w f9d x necess>y to ref] to ! ,control ,data ,=tran-#fb ,ref]5ce ,manual = details on ! use ( =mats4 ,a =mat is treat$ z a /r+4 ,=mats w be writt51 = example1 z foll[s3 '7#f;,e#bj4aj7' '7#a;,h#j1 #i,x1 #e;,,htable1 ,i#c7' 4 ,note t ! p>5!ses are "p ( ! =mat1 & bo? p>5!ses & /r+ quotes are requir$4 ,z w be indicat$ bel[1 a =mat /r+ may appe> explicitly 9 an ,,input or ,,output /atem5t4 ,if ! same =mat /r+ is us$ m ?an once1 h[ev]1 x may be conv5i5t to give x a "n ?r\gh a =mat decl>ation4 ,a =mat decl>ation has ! =m =mat ,id5tifi] 3 '7,=tran =mat7' 4 ,examples are3 =mat ,f 3 '7#f;,e#bj4aj7' =mat ,g 3 '7#a;,h#j1 #i,x1 #e;,,htable1 ,i#c7' 4 ,a =mat decl>ation obeys ! same rules ( syntax & scope z d o!r decl>ations4 ,=mat id5tifi]s may be us$ z p>amet]s1 & =mat is a specifi]4 ,,input ,! ,,input proc$ure is us$ to input numb]s & ,holl]i? in=mation 9 accordance ) ,=tran-type =mats4 ,an ,,input /atem5t has "o ( ! =ms ,,input 7,m1,f1li/7 ,,input 7,m1,f7 :]e3 7#a7 ,m is ! logical unit designation4 ,m may be any ari?metic expression4 ,if x is n integral-valu$1 ! action ,m 3 enti] 7,m #j4e7 w take place4 ,! /&>d input unit is #ej4 7#b7 ,f is a =mat expression4 ,x may be an actual =mat /r+1 a =mat id5tifi]1 a conditional =mat expression1 or any v>iable :i* conta9s ! />t+ address ( a =mat /r+4 ,caution4 ,9 ! case ( a conditional =mat expression1 =mat /r+s & =mat id5tifi]s %\ld n be mix$4 ,= example1 7a7 & 7b7 bel[ are p]mitt$1 b 7c7 w cause an incorrect program to be compil$3 7a7 if ,b !n '7,e#bj4g7' else '7,e#bj4f7' 7b7 if ,b !n ,f#a else ,f#b 7c7 if ,b !n ,f#a else '7,e#bj4f7' 4 7#c7 li/ is z def9$ previ\sly4 ,( c\rse1 = ,,input all expressions mu/ be v>iables4 ,! foll[+ are examples ( an ,,input /atem5t3 ,,input 7#ej1 '7#d;,e#bj4h7'1 ,n1 = ,i 3 #a /ep #a until ,n d ,a,i74 ,,input 7if ,a ,b !n ,m else ,n1 ,f1 ,x1 ,y1 ,z7 4 ,ea* ,,input /atem5t causes at lea/ "o c>d image to be read4 ,note t ! ,,input proc$ure does n make type *ecks betwe5 ! data & ! program v>iables4 ,a float+ po9t numb]1 = example1 is /or$ z su* reg>dless ( ! type ( ! v>iable to :i* x is assign$4 ,caution4 ,x is /rongly recomm5d$ t n bo? ,,read & ,,input be us$ 9 ! same program4 ,ea* buff]s ahead "o c>d image4 ,fur!rmore1 ea* ,,input /atem5t causes at lea/ "o c>d image to be read :ile a ,,read /atem5t may n cause a new c>d image to be read4 ,mix+ ! two /atem5ts w require q c>eful use ( blank c>ds 9 ! data to all[ = ! buff]+4 ,,output ,! ,,output proc$ure is us$ to output numb]s & ,holl]i? in=mation 9 accordance ) ,=tran-type =mats4 ,an ,,output /atem5t has "o ( ! =ms ,,output 7,m1,f7 ,,output 7,m1,f1li/7 :]e ,m1 ,f1 & li/ are z indicat$ above4 ,! foll[+ are examples ( ,,output /atem5ts3 ,,output 7#ea1 '7#e;,,htable7'7 ,,output 7#ea1 '7#a;,h#j1i,x1#aj;,e#aj4b7'1 = ,i 3 #a /ep #a until #ajj d ,a,i7 4 ,ea* ,,output /atem5t causes at lea/ "o l9e pr9t] image to be put out4 ,! /&>d output unit is #ea1 & ! /&>d pun* unit is #eb4 ,int]m$iate ,tape ,proc$ures ,!re are five /&>d proc$ures = mak+ use ( magnetic tape = auxili>y /orage3 ,,b9read1 ,,b9write1 ,,endfile1 ,,rew9d & ,,backup4 ,,b9read ,a ,,b9read /atem5t has ! =m ,,b9read 7,m1 li/7 :]e ,m & li/ are ! same z = ,,input4 ,ea* ,,b9read /atem5t causes ! designat$ unit to move =w>d "o logical record1 read+ 9 b9>y =mat into ! v>iables ( ! li/4 ,if few] v>iables appe> 9 ! li/ ?an are on ! record1 only ^? values are read & ! tape moves on to ! end ( ! record4 ,if m v>iables appe> 9 ! li/ ?an are on ! record1 ?is is treat$ z an error & ! program is t]m9at$4 ,! foll[+ is an example ( a ,,b9read /atem5t3 ,,b9read 7#f1 = ,i 3 #a /ep #a until #ajjj d ,a,i7 4 ,,b9write ,a ,,b9write /atem5t has ! =m ,,b9write 7,m1 li/7 :]e ,m & li/ are ! same z = ,,output4 ,ea* ,,b9write /atem5t causes ! values ( ! li/ expressions to be writt5 9 "o logical record 9 b9>y =mat on ! designat$ unit4 ,,endfile ,an ,,endfile /atem5t has ! =m ,,endfile 7,m7 :]e ,m is a unit designation z be=e4 ,! /atem5t causes an end-(-file record to be writt5 on ! designat$ unit4 ,,rew9d ,a ,,rew9d /atem5t has ! =m ,,rew9d 7,m7 :]e ,m is a unit designation z be=e4 ,! /atem5t causes ! designat$ unit to be rew\nd to ! load po9t4 ,,backup ,a ,,backup /atem5t has ! =m ,,backup 7,m7 :]e ,m is a unit designation z be=e4 ,! /atem5t causes ! designat$ unit to be backspac$ "o logical record ( b9>y in=mation or "o physical record ( ,,bcd in=mation4 ,tape-,*eck+ ,proc$ures ,! *eck+ proc$ures are3 ,,e(1 ,,read]r1 & ,,writ]r4 ,^! are ,boolean proc$ures4 ,,e( ,an ,,e( call has ! =m ,,e( 7,m7 :]e ,m is a logical unit designation z be=e4 ,x yields ! value true if ! previ\s read op]ation enc\nt]$ an end-(-file or ! previ\s write op]ation enc\nt]$ an end-(-tape2 o!rwise x yields ! value false4 ,an example ( ! use ( an ,,e( call is3 if ,,e(7#f7 !n goto ,,al>m 4 ,,read]r ,a ,,read]r call has ! =m ,,read]r 7,m7 :]e ,m is a logical unit designation z be=e4 ,x yields ! value true if ! previ\s read op]ation produc$ a p>ity error2 o!rwise x yields ! value false4 ,,read]r %\ld n be us$ = te/+ ! op]ation ( a ,,read /atem5t4 ,! ,,read proc$ure has its own facilities = *eck+1 mak+ multiple attempts 9 case ( errors1 & t]m9at+ ! program if necess>y4 ,,writ]r ,a ,,writ]r call has ! =m ,,writ]r 7,m7 :]e ,m is a logical unit designation z be=e4 ,x yields ! value true if ! previ\s write op]ation produc$ a p>ity error2 o!rwise x yields ! value false4 ,v4 ,! ,ext]nal ,decl>ation ,an ext]nal decl>ation is requir$ = ea* non/&>d libr>y proc$ure or proc$ure compil$ sep>ately f ! call+ program1 :e!r 9 ,algol1 ,=tran or ,,codap4 ,/&>d ,algol proc$ures are describ$ 9 ,section ,,vi4 ,note t a ,,codap subr\t9e mu/ take acc\nt ( ! special /ructure ( ! ,algol call+ sequ5ce z describ$ 9 ,app5dix ,c or be treat$ z a ,=tran subprogram4 ,! use ( ,=tran subprograms is describ$ 9 ,app5dix ,g4 ,! ext]nal decl>ation has "o ( ! foll[+ =ms3 ext]nal ,i#a1 4441 ,9 real ext]nal ,i#a1 4441 ,9 integ] ext]nal ,i#a1 4441 ,9 ,boolean ext]nal ,i#a1 4441 ,9 :]e ea* ,ik is an id5tifi] & n is any positive integ]4 ,a type decl>ator prec$+ ! decl>ator ext]nal signifies a function proc$ure hav+ t type4 ,note t no in=mation ab\t p>amet]s appe>s 9 an ext]nal decl>ation4 ,see ,app5dix ,a = syntactical def9ition4 ,9 ! ,,algo mode1 ,,lib c>ds mu/ be includ$ 9 ! job deck = non/&>d libr>y r\t9es1 9 addition to ! ext]nal decl>ations4 ,details are f\nd 9 ,section ,,viii4 ,,vi4 ,/&>d ,proc$ures ,c]ta9 proc$ures are us$ )\t be+ decl>$4 ,^! include ! /&>d functions li/$ 9 ! ,algol #fj report & ! input-output & int]m$iate tape proc$ures4 ,! complete li/ is z foll[s3 ,,abs ,,sign ,,sqrt ,,s9 ,,cos ,,arctan ,,ln ,,exp ,,enti] ,,e( ,,read]r ,,writ]r ,,=tranf ,,ftnf ,,read ,,page ,,pr9t ,,write ,,pun* ,,input ,,output ,,b9read ,,b9write ,,endfile ,,rew9d ,,backup ,,=tran ,,ftn ,^! proc$ures are global to ! program4 ,!y behave z ?\gh decl>$ 9 a fictiti\s block surr\nd+ ! entire program4 ,,vii4 ,error ,*eck+ & ,diagno/ics ,9 a complete compilation ! compil] makes two passes on ! ,algol s\rce program4 ,if errors :i* ! compil] _c correct are detect$ 9 ! fir/ pass1 !n ! second1 or translation1 pass w n be made4 ,! foll[+ types ( errors are detect$3 #a4 syntactical error #b4 undecl>$ id5tifi] #c4 id5tifi] decl>$ twice 9 ! same block head #d4 misspell$ delimit] 7correct$ 9 _m cases7 #e4 miss+ escape symbol 7correct$ unless bo? are miss+ = ! same delimit]1 9 :i* case ! delimit] is treat$ z an id5tifi]74 ,! program li/+ & any diagno/ics always appe> on ! /&>d output m$ium4 ,9 ! case ( a syntactical error1 a message w appe> 9 ! program li/+ "o or sev]al l9es bel[ ! error4 ,! location ( ! error 9 ! program w be fur!r p9po9t$ 9 ! l9e ( symbols imm$iately bel[ ! error message4 ,?is l9e w be a %ort portion ( ! program ) ! la/ symbol 9 ! l9e be+ ! "o :i* indicates ! error4 ,= example1 a decl>ation might be out ( place z foll[s3 4 4 4 x 3 a b2 ',,integ]' ,k2 99999999 ,,la/ ,,"* ,,indicates ,,syntactical ,,error4 x 3 a b2 ,,integ] 4 4 4 ,9 "s cases ! l9e bel[ ! message may diff] slightly f ! correspond+ /r+ ( symbols above2 = example1 an id5tifi] might be r5d]$ by ,id5t4 ,x is possible = a s+le syntactical error to cause m ?an "o diagno/ic4 ,a few syntactical errors are correct$ by ! compil]1 & a message is put out to ?is effect4 ,an example is a semicolon imm$iately prec$+ else4 ,accord+ to ! comm5t conv5tions ( ,algol1 any /r+ ( symbols foll[+ end & n conta9+ end1 else or a semicolon is treat$ z comm5t4 ,z a result1 ! omission ( "o ( ^! symbols foll[+ end does n always cause an error 9 compilation b w cause a portion ( ! program to be skipp$ ov] by ! compil]4 ,?us = example1 9 444 x 3 a b end = i 3 #a /ep #a 444 ! ,,= /atem5t w be skipp$ at lea/ 9 "p4 ,! compil] w put out a caution message 9 ?is & "s o!r cases1 b x w n *ange ! program4 ,if an id5tifi] is n decl>$ 7or possibly decl>$ 9 ! wrong place71 a message is put out bel[ ! program li/+ toge!r ) ! undecl>$ id5tifi]4 ,! compil] does n *eck ! type ( id5tifi]s4 ,!re=e1 su* errors z a ,boolean v>iable 9 an ari?metic expression1 or ! brackets ( a subscript$ v>iable replac$ by p>5!ses1 are n detect$1 & an incorrect program may be compil$4 ,,viii4 ,runn+ ,programs ,! ,algol program is pun*$ on c>ds 9 ! h>dw>e repres5tation describ$ 9 ,app5dix ,b4 ,! =mat is ess5tially free field3 spaces h no significance except )9 escape symbols & /r+ quotes4 ,only ! fir/ #gb columns1 h[ev]1 are int]pret$ by ! compil]4 ,! rema9+ columns may be us$ = id5tification purposes4 ,c>e mu/ be tak5 :5 a /r+ is cont9u$ onto ! next c>d1 z ! cont9uation w beg9 9 column #a4 ,! program li/+ w h ! same =mat z ! c>ds4 ,9 ! foll[+ discussion ! symbol signifies ! lett] ,o :]e necess>y = emphasis1 & ! symbol signifies a #g-i pun* 9 c>d column #a4 ,,algol ,control ,sy/em ,! compil] op]ates "u ! ,,algol ,control ,sy/em4 ,?is sy/em is a subord9ate control r\t9e ( ! ,ma/] ,control ,sy/em ( ! ,,co-,,op ,monitor ,programm+ ,sy/em4 ,,algol is q simil> to ! subord9ate control r\t9e ,,coop4 ,,algol is call$ ) an ,,mcs 7,ma/] ,control ,sy/em7 c>d hav+ ,,algol pun*$ beg9n+ 9 column #b4 ,o!r details ( ?is c>d are available 9 descriptions ( ! ,,co-,,op ,monitor4 ,x %\ld be not$ 9 select+ a /&>d recov]y proc$ure t ! concept ( ,,common is n us$ 9 ,algol4 ,foll[+ ! ,,mcs c>d w be a control c>d giv+ in/ructions to ! control r\t9e ,,algol4 ,x w "n "o ( ! foll[+ r\t9es3 ,,algo1 ,,aldap1 ,,execute1 ,,b9>y1 ,,=tran1 ,,rew9d or ,,def9e4 ,^! w be discuss$ bel[4 ,,eop ,c>d ,! ,,eop 7end-(-program7 c>d has ! *>act]s ',e,p' pun*$ 9 columns #aj-ad4 ,9 ! ,,algo mode1 "o ,,eop c>d mu/ be us$ to t]m9ate ! program4 ,9 ! ,,aldap mode1 "o ,,eop c>d mu/ be us$ to t]m9ate ea* ,algol program or ,algol proc$ure be+ compil$ sep>ately4 ,compile & ,execute3 ,,algo ,! ,,algo mode ( runn+ an ,algol program is ! simple/ & ! fa/e/4 ,x w be ! m suitable = a l>ge numb] ( programs4 ,unless ! programm] has special reasons = us+ ! ,,aldap mode1 ! ,,algo mode is recomm5d$4 ,! ,algol program mu/ be self-conta9$ except = /&>d proc$ures & libr>y proc$ures on ! libr>y-sy/ems tape4 ,! job deck mu/ h ! foll[+ c>ds 9 ! specifi$ ord]3 #a4 ,,mcs control c>d4 ,! subord9ate control r\t9e "n mu/ be ,,alg,l4 #b4 ,,algol control c>d4 ,?is w appe> z ,,alg4 or ,,alg1t4 :]e t is an integ] specify+ a "t limit 9 m9utes = compilation & execution4 7,! p]iod is requir$ on e control c>d47 #c4 ,,lib c>ds4 ,if necess>y4 ,"o ,,lib c>d is requir$ = ea* non-/&>d libr>y proc$ure call$ 9 ! program1 namely ^? decl>$ ext]nal4 ,! =mat ( a ,,lib c>d is z foll[s3 ! *>act]s ,,lib pun*$ 9 columns #aj-ab & ! "n ( a libr>y entry po9t beg9n+ 9 column #bj4 ,!re may be no m ?an #bj ,,lib c>ds4 #d4 ,,program c>d4 ,if desir$4 ,?is may be us$ to id5tify ! program4 ,its =mat is describ$ 9 ! next p>agraph4 #e4 ,algol program deck4 #f4 ,,eop c>d4 #g4 ,data4 ,if requir$4 ,,program ,c>d ,! ,,program c>d is optional4 ,x is useful = id5tification purposes1 & 9 ! ,,aldap mode x s]ves to "n ! program entry po9t4 ,! =mat ( ! c>d is free field4 ,! *>act]s ,,pr,,gram mu/ appe> foll[$ by ! program "n1 :i* mu/ be alphanum]ic4 ,compile_/,execute3 ,,aldap ,! ,,aldap mode is us$ to compile an ,algol program or proc$ure to a relocatable b9>y or a ,,codap =mat4 ,execution is optional4 ,= compilation only1 ! program deck may consi/ ( any mixture ( ,algol programs & proc$ures1 any numb] ( :i* may be 9 ,,codap4 ,if execution is desir$1 "p or all ( ! program deck may h be5 previ\sly compil$1 s t ! deck may h ,algol1 ,,codap & relocatable b9>y c>ds4 ,,aldap ,control ,/atem5t ,! =mat ( ! ,,aldap /atem5t is3 ,,aldap1,l1,b1n4 :]e ,l is a program li/+ key1 ,b is a pun*$ c>d output key1 n is a logical unit numb]4 ,a p]iod may t]m9ate ! /atem5t at any po9t1 ) rema9+ fields treat$ z z]o4 ,if ! program li/+ key 7,l7 is a #a1 an assembl$ li/+ ( ! ,,codap object code w be produc$ on ! /&>d output m$ium4 ,if ! key is z]o or blank1 no su* li/+ w be produc$4 ,a li/+ ( ! ,algol program & any diagno/ics w always be produc$ on ! /&>d output m$ium4 ,if ! pun*$ c>d output key 7,b7 is a #a1 a relocatable b9>y deck w be produc$ on ! /&>d pun* m$ium4 ,if ! key is a #b1 a ,,codap symbolic deck w be produc$ on ! /&>d pun* m$ium4 ,if ! key is a #c1 bo? a symbolic deck & a relocatable b9>y deck w be produc$ on ! /&>d pun* m$ium1 ) ! symbolic deck appe>+ fir/4 ,if ! key is z]o or blank1 no deck w be produc$4 ,! logical unit numb] 7n7 specifies ! unit :i* is to be ! load-&-g tape if x is "o ( ! integ]s #a-di or #ef4 ,if n is "s o!r integ] or blank1 no load-&-g tape w be writt54 ,! load-&-g tape is requir$ :5 execution ( ! program is to foll[4 ,examples3 7a7 ,,aldap1 #a1 #a1 #ef4 ,?is /atem5t w cause ! ,algol_/,,codap deck to be compil$1 an assembl$ li/+ to be produc$ on ! /&>d output m$ium1 a relocatable b9>y deck to be produc$ on ! /&>d pun* m$ium1 & a load-&-g tape writt5 on logical unit #ef4 7b7 ,,aldap1 #a4 ,?is /atem5t w cause ! ,algol_/,,codap deck to be compil$1 & an assembl$ li/+ to be produc$ on ! /&>d output m$ium4 ,job ,deck3 ,,aldap ,compilation_/,execution ,= compilation only ( an ,algol_/,,codap program deck1 ! job deck %\ld conta9 ! foll[+ c>ds 9 ! specifi$ ord]3 #a4 ,,mcs control c>d4 ,) ,,alg,l z ! subord9ate control r\t9e "n4 #b4 ,,algol control c>d4 ,) ! appropriate ,,aldap control /atem5t4 #c4 ,,program c>d4 ,if desir$4 #d4 ,program deck4 ,any mixture ( ,algol & ,,codap programs & proc$ures1 ) all _! subr\t9es except ! /&>d proc$ures & ^? on ! libr>y-sy/ems tape4 ,ea* ,algol program or proc$ure mu/ be t]m9at$ by an ,,eop c>d4 #e4 ,,f9is c>d4 ,?is c>d conta9s ! *>act]s ,,f9is pun*$ 9 columns #aj-ad4 ,x signals ! end ( all compilations4 ,= compilation & execution ( an ,algol_/,,codap program deck1 a load-&-g tape mu/ be reque/$ 9 ! ,,aldap control /atem5t4 ,if no relocatable b9>y c>ds foll[ ! la/ subprogram to be compil$1 !n ! program deck mu/ be t]m9at$ by an ,,eop c>d :i* is 9 addition to ! ,,eop c>d or ,,end c>d 7! latt] = a ,,codap subprogram7 :i* t]m9ates ! la/ program or proc$ure4 ,! ,,f9is c>d !n foll[s ?is additional ,,eop c>d4 ,an ,,eop c>d always causes a ,,tra c>d image to be writt5 on ! load-&-g tape4 ,! control /atem5ts ,,execute1 ,,b9>y1 ,,=tran1 ,,rew9d & ,,def9e may be us$ z describ$ 9 ! 8,,co-,,op ,monitor ,programm]'s ,guide04 ,,b9>y is useful = load+ a relocatable b9>y deck onto ! load-&-g tape prior to compilation ( an ,algol call+ program1 :]e ! subprogram 9 relocatable =m might h ! same "n z a libr>y r\t9e4 ,if ! ,algol program prec$$ ! relocatable deck1 ! libr>y r\t9e w\ld be fet*$ by ! load] & an error indication giv54 ,! ,,co-,,op control /atem5ts ,,load & ,,execut] are n us$ by ,,algol4 ,examples ,ea* ( ! foll[+ examples describes a job deck :i* illu/rates a diff]5t way ( compil+ & execut+ ! same ,algol program4 ,! program calls a libr>y proc$ure ) entry po9t nam$ ,,bessel1 & ! program conta9s at lea/ "o o!r proc$ure4 ,on ! ,,mcs c>d only ! fir/ field is indicat$1 z ! o!rs may v>y f "o in/allation to ano!r4 ,example #a ,?is job uses ! ,,alg mode4 ,,alg,l1 444 4 ,,alg4 ,,lib ,,bessel ,,pr,,gram ,,sample ,algol ,program 7) ext]nal decl>ation ( ,,bessel7 ',e,p' ,data ,example #b ,?is job uses ! ,,aldap mode1 compil+ ! entire program at once4 ,! ,,aldap control /atem5t calls = an assembl$ li/+1 a b9>y deck1 & a load-&-g tape on logical unit #ef4 ,! execute c>d gives a two m9ute "t limit on ! execution4 ,,alg,l1 444 4 ,,aldap1#a1a1ef4 ,,pr,,gram ,,sample ,algol ,program 7) ext]nal decl>ation ( ,,bessel7 ',e,p' ',e,p' ,,f9is ,,execute1#b4 ,data ,example #c ,?is job consi/s simply ( ! execution ( ! relocatable program deck obta9$ 9 example #b4 ,,alg,l1 444 4 ,,execute1#b4 ,relocatable ,deck ,data ,example #d ,?is example is simil> to example #b4 ,"h ! ma9 program & "o ( its proc$ures are to be compil$ sep>ately4 ,,alg,l1 444 4 ,,aldap1#a1a1ef4 ,,pr,,gram ,,sample ,algol ,program 7) ext]nal decl>ation ( bo? ,,bessel & ! proc$ure be+ compil$ sep>ately7 ',e,p' ,algol ,proc$ure ',e,p' ',e,p' ,,f9is ,,execute1#b4 ,data ,example #e ,9 ?is example ! proc$ure :i* 0 compil$ sep>ately 9 example #d is be+ compil$ by itself1 i4e41 ! call+ program is n 9 ! deck at all4 ,( c\rse !re is no execution 9 ?is case4 ,note t no load-&-g tape is reque/$ & only "o ,,eop c>d is us$4 ,!re _c be a ,,program c>d4 ,,alg,l1 444 4 ,,aldap1#a1a4 ,algol ,proc$ure ',e,p' ,,f9is ,example #f ,"h ! proc$ure compil$ by itself 9 example #e appe>s 9 ! program deck 9 relocatable b9>y =m1 :ile ! call+ program is 9 ! ,algol language4 ,,alg,l1 444 4 ,,aldap1#a1a1ef4 ,,pr,,gram ,,sample ,algol ,program 7) ext]nal decl>ation ( bo? ,,bessel & ! proc$ure 9 relocatable =m7 ',e,p' ,,f9is ,,execute1#b4 ,relocatable ,deck ,data ,! relocatable deck "h mu/ be t]m9at$ by two ,,tra c>ds4 ,"o ( ^! is g5]at$ by ! compil] :5 x processes ! ,,eop c>d :i* mu/ t]m9ate ! proc$ure = compilation1 z 9 example #e4 ,! second ,,tra c>d c be obta9$ by us+ a second ,,eop c>d1 z 9 example #b4 ,alt]natively1 ! second ,,tra c>d c be add$ to ! relocatable deck be=e execution4 ,note t ?is second ,,tra c>d mu/ n be us$ :5 ! relocatable deck is load$ by a ,,b9>y control /atem5t4 ,?is is illu/rat$ 9 ! next example4 ,example #g ,9 ?is case ! previ\sly compil$ proc$ure has ! same "n z a r\t9e on ! libr>y-sy/ems tape4 ,,alg,l1 444 4 ,,b9>y1#ef4 ,relocatable ,deck 7t]m9at$ by "o ,,tra c>d7 ,,aldap1#a1a1ef4 ,,pr,,gram ,,sample ,algol ,program 7) ext]nal decl>ation ( bo? ,,bessel & ! proc$ure 9 relocatable =m7 ',e,p' ',e,p' ,,f9is ,,execute1 #b4 ,data ,! logical unit numb] on ! ,,b9>y control /atem5t mu/ agree ) t :i* specifies ! load-&-g tape 9 ! ,,aldap control /atem5t4 ,,app5dix ,a ,adjuncts to ,algol #fj ,li/ ,entities ,! delimit] li/ is a decl>ator & a specifi]4 li/ id5tifi] 33 id5tifi] loop expression 33 = clause ari?metic expression = clause loop expression = clause 7li/7 li/ elem5t 33 ari?metic expression loop expression li/ id5tifi] li/ 33 li/ elem5t li/1 li/ elem5t li/ decl>ation 33 li/ li/ id5tifi] 3 li/ ,=mat ,entities ,! delimit] =mat is a decl>ator & a specifi]4 =mat id5tifi] 33 id5tifi] simple =mat expression 33'7,=tran =mat#b7' =mat id5tifi] =mat expression 33 simple =mat expression if clause simple =mat expression else =mat expression =mat decl>ation 33 =mat =mat id5tifi] 3 =mat expression ,/r+ ,expression /r+ expression 33 /r+ if clause /r+ else /r+ expression ,ext]nal ,decl>ation ,! delimit] ext]nal is a decl>ator4 ext]nal id5tifi] 33 id5tifi] ext]nal li/ 33 ext]nal id5tifi] ext]nal id5tifi]1 ext]nal li/ ext]nal decl>ation 33 ext]nal ext]nal li/ type ext]nal ext]nal li/ ,,app5dix ,b ,h>dw>e ,repres5tation ,"o keypun* "* is res]v$ z an 8escape symbol01 :i* we %all "h suppose is ! apo/rophe4 ,?is symbol is us$ to del9eate ^w delimit]s & tru? values1 :i* are writt5 9 boldface type 9 ,algol ref]5ce language & publication language & indicat$ by und]l9+ 9 ?is manual4 ,! h>dw>e repres5tation ( a ^w delimit] su* z beg9 is !re=e ',,beg9'4 ,no di/9ction is made betwe5 upp] & l[] case lett]s 9 ! h>dw>e language4 ,! translit]ation rules = ! non-^w delimit]s are compris$ 9 ! foll[+ table4 ,?is assumes a #dh "* h>dw>e set & is consi/5t ) ! usage 9 ! ,,alcor gr\p4 ,= "s basic symbols alt]natives are tol]at$1 z indicat$4 ,ref]5ce ,h>dw>e ,tol]at$ ,h>dw>e ',,ls' ',,less' ',,lq' ',,lseq'1 ',,notgreat]'1 ',,n ,,great]' ',,eq' ',,equal' ',,gq' ',,greq'1 ',,notless'1 ',,n ,,less' ',,gr' ',,great]' ',,nq' ',,nteq'1 ',,notequal'1 ',,n ,,equal' ',,n' ',,&' ',,or' ',,imp' ',,implies'1 ',,impl' ',,eqv' ',,equiv' ' ',e'1',t' 99 9999 ',,p[]' _/_/ ',,div' 3 44 2 41 3 41 44 7_/ _/7 #8 '7' ' '7' ,9 ! case ( ! /r+ quotes1 ! tol]at$ symbols are requir$ = ! inn] /r+s ( a ne/ ( /r+s4 ,actually1 ! compil] c tol]ate _m o!r spell+s ( ^w delimit]s because ( its facility = correct+ misspell+s4 ,! delimit] g to is accept$ ) or )\t ! space betwe5 ! two words1 b x is treat$ z a s+le delimit]3 ',,goto' or ',,g ,,to'4 ,! compil] c also accept a #fd "* h>dw>e repres5tation3 ! full set available on ! l9e pr9t]4 ,9 prep>+ programs1 ov]pun*+ is us$ on ! #dh "* keypun* 9 ?is case4 ,! table bel[ indicates ! keypun*+ rules 9 use at ,oak ,ridge ,national ,laboratory4 ,ref]5ce ,h>dw>e #a-h pun* #a-e pun* #a-i pun* #b-g pun* #b-f pun* #c-g pun* #b-d pun* #a-f pun* #b-e pun* #c-e pun* 3 #b-h pun* 2 #b-i pun* #c-f pun* #c-d pun* ,! o!r basic symbols are ei!r 9 ! #dh "* set or are replac$ by ^w delimit]s z above4 ,! symbol 3 is treat$ z two symbols 9 ! #fd "* set1 & is pun*$ z su*4 ,,app5dix ,c ,/ructure ( ,proc$ure ,call+ ,sequ5ce ,! foll[+ in=mation is necess>y = ! us] writ+ a non-,algol proc$ure to be call$ f an ,algol program4 ,! call+ sequ5ce diff]s f t f\nd 9 _m o!r languages4 ,! fir/ ^w ( ! non-,algol proc$ure mu/ h a simple jump in/ruction 9 its upp] half1 & ! exit l9e is provid$ by a jump to ?is fir/ ^w4 ,! entry automatically causes ! prop] return address to be plac$ 9 ! address portion ( ! fir/ half-^w4 ,^u entry to ! proc$ure1 index regi/] six conta9s an address :i* is us$ to ref]5ce ea* p>amet]4 ,to e/abli% l9kage ) ! fir/ p>amet]1 ! in/ruction ,,lda #f #j is p]=m$4 ,?is br+s into ! accumulator a ^w ( "o ( ! foll[+ types3 #a4 ,,slj #j ,,ena ,v #b4 ,,slj #j ,,rtj ,l ,9 case 7#a71 ,v is ! address ( ! p>amet]4 ,9 case 7#b71 ,l is ! />t+ address ( a piece ( cod+ = comput+ ! address ( ! p>amet] & leav+ x 9 ! accumulator 7if ! p>amet] is an expression1 ! address 9 ! accumulator w be t ( a tempor>y conta9+ its value74 ,case 7#a7 always holds if ! p>amet] is a simple v>iable1 /r+1 array id5tifi]1 swit* id5tifi]1 or proc$ure id5tifi]4 ,9 case 7#b7 ! same tempor>y w be us$ = all ! expressions4 ,bo? cases c be provid$ = by sett+ aside two locations = ea* p>amet] 9 ! proc$ure body & plac+ ! in/ruction ,,slj 99-#a 9 ! upp] half ( ea* second location4 ,!n aft] ,,lda #f #j m5tion$ above1 ,,/a ,,res#a1 :]e ,,res#a is ! fir/ res]v$ location = ! fir/ p>amet]1 makes ! two locations into a clos$ subr\t9e4 ,aft] ?is1 ! in/ruction ,,rtj ,,res#a causes ! address ( ! fir/ p>amet] to be plac$ 9 ! accumulator anytime x is p]=m$4 ,?is accommodates expressions call$ by "n4 ,9 g5]al1 ! ,k? p>amet] is ref]5c$ z above1 b beg9n+ ) ,,lda #f 7,k - #a74 ,?is description does n apply to ! /&>d proc$ures1 ea* ( :i* has its own special call+ sequ5ce4 ,,app5dix ,d ,int]nal ,repres5tation ( ,/r+s ,! address repres5t+ a /r+ is t ( ! fir/ ^w ( /r+ *>act]s4 ,ea* left /r+ quote is repres5t$ int]nally by ! ^w #jj 444 #jcded 1 & ea* "r /r+ quote by #jj 444 #jedgd 4 ,! *>act]s ( ! /r+ :i* are n /r+ quotes are pack$ 9 ,,bcd eight *>act]s p] ^w4 ,^! words are 9 ! natural ord]1 ! fir/ imm$iately foll[+ ! left /r+ quote & ! la/ imm$iately foll[$ by ! "r /r+ quote4 ,if ! la/ ^w be=e a "r quote is n full1 ! re/ ( t ^w is fill$ out ) z]os 7n ,,bcd blanks74 ,,app5dix ,e ,program ,effici5cy ,! foll[+ in=mation may be ( int]e/ to programm]s desir+ an effici5t program3 #a4 ,! ,,= /atem5t is def9$ ) m g5]ality ?an is useful 9 mo/ programs4 ,9 p>ticul>1 ! ari?metic expressions 9 ! ,,= clause are all[$ to *ange 9 value dur+ execution ( ! ,,= /atem5t4 ,! compil] does n attempt to det]m9e :i* ,,= /atem5ts make use ( ?is flexibility & treats all ( !m 9 ! mo/ g5]al way4 ,!re=e1 9 a /atem5t su* z = ,i 3 #a /ep ,m ,n until abs7,a - ,b7 d 444 1 ! expression ,m ,n is evaluat$ twice = ea* it]ation1 & ! expression abs7,a - ,b7 is evaluat$ once = ea* it]ation4 ,if ,m1 ,n1 ,a 1 & ,b d n *ange 9 ! loop1 ?is is unnecess>y4 ,su* ineffici5cy c be avoid$ by programm+ 9 a slightly diff]5t way4 ,! above example c be writt5 z foll[s3 ,t#a 3 ,m ,n2 ,t#b 3 abs7,a - ,b7 2 = ,i 3 #a /ep ,t#a until ,t#b d 444 4 #b4 ,! concept ( call by value is a device appli$ to proc$ures to elim9ate unne$$ flexibility 9 proc$ure calls4 ,if a p>amet] hav+ a value is ref]5c$ m ?an once 9 ! proc$ure body & ! flexibility ( call by "n is n ne$$1 !n ! program is m effici5t if ! p>amet] is includ$ 9 ! value "p ( ! proc$ure head+4 ,if su* a p>amet] is ref]5c$ only once1 x is m effici5t if x is n includ$ 9 ! value "p4 #c4 ,array id5tifi]s :i* are p>amet]s %\ld be specifi$4 ,,app5dix ,f ,controv]sial ,features ( ,algol #fj ,a few features ( ! language h be5 subject to m ?an "o int]pretation4 ,=tunately1 ! va/ majority ( programs w n involve ^! ambiguities1 b = ! few t d x w be necess>y to "k :at decisions ! compil] makes4 ,?is app5dix indicates ^! decisions = ! m controv]sial areas4 #a4 ,side effects 9 function designators4 ,! evaluation ( prim>ies 9 expressions is n /rictly left to "r all[+ = prec$5ce rules4 ,9 p>ticul>1 ! value ( a v>iable 9 an expression is nev] /or$ 9 a tempor>y simply to pres]ve its value f *ange by ! evaluation ( a function designator 9 ! expression4 ,o!rwise1 ! evaluation does proce$ f left to "r & accord+ to prec$5ce rules1 includ+ ! ref]5c+ ( =mal p>amet]s & ! calculation ( ! address ( subscript$ v>iables4 ,all function designators are evaluat$ 9 ,boolean expressions4 #b4 ,own v>iables & arrays 9 proc$ures4 ,! own quantities local to ! body ( a proc$ure :i* is call$ f m ?an "o po9t 9 a program record ! hi/ory ( ! proc$ure z oppos$ to a hi/ory ( ea* po9t ( ref]5ce4 ,9 o!r words1 only "o copy ( ! own quantities is pres]v$4 ,,app5dix ,g ,=tran ,subprograms 9 an ,algol ,program ,! /&>d proc$ures ,,=tran1 ,,=tranf1 ,,ftn1 & ,,ftnf are us$ to call compil$ ,=tran subr\t9es & functions f )9 an ,algol program4 ,ea* proc$ure has "o p>amet] :i* is a call ( ! desir$ ,=tran subprogram4 ,! ,=tran subprogram mu/ be decl>$ ext]nal z describ$ 9 ,section ,v4 ,! use ( ^! proc$ures simply causes a ,=tran call+ sequ5ce to be g5]at$ by ! compil]4 ,( c\rse ! subprogram c\ld be writt5 9 ,,codap z well z ,=tran1 provid$ x is design$ to l9k ?r\gh a ,=tran-type call+ sequ5ce4 ,! proc$ures are us$ z foll[s3 ,,=tran--g5]ates a ,=tran #fb call+ sequ5ce = a subr\t9e ,,=tranf--g5]ates a ,=tran #fb call+ sequ5ce = a function ,,ftn--g5]ates a ,=tran #fc call+ sequ5ce = a subr\t9e ,,ftnf--g5]ates a ,=tran #fc call+ sequ5ce = a function ,ea* ( ^! proc$ures is /&>d1 i4e41 available )\t decl>ation4 ,,=tranf & ,,ftnf are us$ 9 expressions4 ,examples3 x 3 ,,ftnf 7,,alpha7,t1,a#j1j77 ,,=tran 7,,sub7,i ,j77 4 ,! foll[+ re/rictions mu/ be obs]v$3 labels1 proc$ures ) no p>amet]s1 /&>d proc$ure names1 & array names _c be us$ z argum5ts ( a call ( a ,=tran subprogram4 ,h[ev]1 9 ! case ( an array1 ! subscript$ v>iable :i* is ! fir/ elem5t ( ! array w satisfy a ,=tran subr\t9e :i* has an array "n z a =mal p>amet]4 ,! "n ( ! ,=tran subprogram _c be a =mal p>amet]4 ,lit]als mu/ be enclos$ 9 /r+ quotes4 ,footnotes #a,see ,app5dix ,a = syntactical def9ition4 #b;,= def9ition ( ,=tran =mat1 see ,control ,data ,=tran-#fb ,ref]5ce ,manual4 ,ackn[l$gm5t ,! au?or 0 greatly assi/$ 9 ! prep>ation ( ?is docum5t by sev]al p]sons :o h contribut$ labors or advice to ! con/ruction ( ! compil]4 ,^! include ,n4 ,b4 ,alex&] & ,a4 ,a4 ,grau1 also ,k4 ,a4 ,wolf ( ,control ,data ,corporation1 & especially ,r4 ,g4 ,/uel& ( ,control ,data ,corporation4 ,,ornl-#cdfj ,,uc-#cb--,ma!matics & ,comput]s ,,tid-#dejj 7#bcrd ed47 ,,int]nal ,,di/ribution #a4 ,biology ,libr>y #b-d4 ,c5tral ,rese>* ,libr>y #e4 ,reactor ,division ,libr>y #f-g4 ,,ornl--,y-#ab ,te*nical ,libr>y ,docum5t ,ref]5ce ,section #h-bg4 ,laboratory ,records ,dep>tm5t #bh4 ,laboratory ,records1 ,,ornl ,r4,c4 #bi4 ,r4 ,k4 ,adams #cj4 ,nancy ,alex&] #ca4 ,e4 ,d4 ,arnold #cb4 ,don ,arnurius #cc4 ,george ,j4 ,atta #cd4 ,susie ,e4 ,atta #ce4 ,s4 ,j4 ,ball #cf4 ,j4 ,e4 ,bigel[ #cg4 ,r4 ,e4 ,bigg]s #ch4 ,craig ,br&on #ci4 ,j4 ,c4 ,bresee #dj-da4 ,l4 ,l4 ,bumg>n] #db4 ,w4 ,r4 ,burrus #dc4 ,h4 ,p4 ,c>t] #dd4 ,d4 ,k4 ,cav9 #de4 ,arl9e ,culk[ski #df4 ,w4 ,davis1 ,jr4 #dg4 ,h4 ,j4 de ,bru9 #dh4 ,p4 ,b4 ,de,nee #di4 ,a4 ,c4 ,d[n+ #ej4 ,l4 ,c4 ,em]son #ea4 ,m>g>et ,emmett #eb4 ,r4 ,l4 ,f]guson #ec4 ,b4 ,r4 ,fi% #ed4 ,p4 ,a4 ,haas #ee4 ,m4 ,feliciano #ef4 ,b>b>a ,ann ,flores #eg4 ,t4 ,b4 ,f[l] #eh4 ,r4 ,e4 ,fund]lic 7,k-#be7 #ei4 ,d4 ,a4 ,g>d9] #fj4 ,c4 ,d4 ,griffies #fa4 ,d4 ,a4 ,griff9 #fb4 ,d4 ,g4 ,gosslee #fc4 ,m4 ,t4 ,h>krid] #fd4 ,m4 ,c4 ,hill #fe4 ,a4 ,s4 ,h\sehold] #ff4 ,w4 ,h4 ,jordan #fg4 ,h4 ,w4 ,joy #fh4 ,f4 ,b4 ,k4 ,kam #fi4 ,george ,kidd #gj4 ,l4 ,j4 ,k+ #ga4 ,ann ,kle9 #gb4 ,k4 ,a4 ,kraus #gc4 ,c4 ,e4 ,l>son #gd4 ,m4 ,e4 ,la,verne #ge4 ,elmon ,lea* #gf4 ,r4 ,p4 ,le9ius #gg-gh4 ,m4 ,p4 ,lietzke #gi4 ,erlie ,mc,daniel #hj4 ,c4 ,d4 ,m>t9 #ha4 ,k4 ,o4 ,m>t9 #hb4 ,betty ,f4 ,maskewitz #hc4 ,r4 ,p4 ,mil=d #hd4 ,f4 ,l4 ,mill]1 ,jr4 #he4 ,r4 ,v4 ,miskell #hf4 ,s4 ,e4 ,moore #hg4 ,j4 ,f4 ,murdock #hh4 ,c4 ,w4 ,ne/or1 ,jr4 #hi4 ,v4 ,k4 ,p>e #ij4 ,c>l ,e4 ,p>k] #ia4 ,s4 ,k4 ,p5ny #ib4 ,a4 ,m4 ,p]ry #ic4 ,d4 ,c4 ,ramsey #id4 ,m4 ,t4 ,rob9son #ie4 ,r4 ,m4 ,ru% #if4 ,y4 ,%ima #ig4 ,j4 ,e4 ,simpk9s #ih4 ,m4 ,j4 ,sk9n] #ii4 ,c4 ,d4 ,scott #ajj4 ,c4 ,d4 ,susano #aja4 ,j4 ,a4 ,sw>t\t #ajb4 ,m4 ,e4 ,tsag>is #ajc4 ,d4 ,k4 ,trubey #ajd4 ,j4 ,s4 ,watson #aje4 ,a4 ,m4 ,we9b]g #ajf4 ,m4 ,e4 ,:atley #ajg4 ,c4 ,s4 ,williams #ajh4 ,h4 ,a4 ,wright #aji4 ,y-#ab ,c5tral ,files #aaj4 ,j4 ,h4 ,zeigl] 7,k-#be7 #aaa4 ,h4 ,zeldes ,,ext]nal ,,di/ribution #aab4 ,t4 ,h4 ,elrod1 ,control ,data ,corporation1 ,comput] ,division1 #cccj ,hillview ,av5ue1 ,palo ,alto1 ,cali=nia #aac4 ,a4 ,a4 ,grau1 ,dep>tm5t ( ,ma!matics1 ,nor?we/]n ,univ]sity1 ,evan/on1 ,ill9ois #aad4 ,r4 ,g4 ,/uel&1 ,control ,data ,corporation1 ,comput] ,division1 #cccj ,hillview ,av5ue1 ,palo ,alto1 ,cali=nia #aae4 ,k4 ,a4 ,wolf1 ,control ,data ,corporation1 ,program+ ,sy/ems1 #eja ,p>k ,av5ue1 ,m9neapolis #ae1 ,m9nesota #aaf4 ,r4 ,a4 ,zeml91 ,control ,data ,corporation1 ,comput] ,division1 #cccj ,hillview ,av5ue1 ,palo ,alto1 ,cali=nia #aag4 ,rese>* & ,developm5t ,division1 ,,aec1 ,,oro #aah-gbh4 ,giv5 di/ribution z %[n 9 ,,tid-#dejj 7#bcrd ed47 "u ,ma!matics & ,comput]s category 7#ge copies--,,ots7 ,transcrib]'s ,notes ,9 ! ,,html v]sion1 repres5t$ code 9 a monospac$ font1 ) keywords 9 boldface z 9 ! ,revis$ ,report4 ,correct$ a few palpable typos4 ,creat$ an orig9al cov] image1 us+ elem5ts f ! pr9t$ book1 = free & unre/rict$ use ) ?is e,book4