しかし、ALGOLの設計者は名前渡しをデフォルトとした。また、言語処理系実装者たちは名前渡しの実現にThunk(サンク)(英語版)という興味深い技法を編み出した。現在、素朴な(ALGOLのような)名前渡しは完全に廃れたが、サンクは遅延(非正格)評価を実装する一般的な手法として知られる。ドナルド・クヌースは処理系が「再帰呼び出しと非局所的参照」を正しく実装しているかを評価するman or boy test(英語版)を考案した。このテストには名前呼び出しの例が含まれている(クヌースらは他にも、名前渡しの「悪用」とでも言うべきJensen's Device(英語版)と後に呼ばれるようになるような技法の一例を示した "ALGOL 60 Confidential"[20]など、仕様のコーナーケースを暴き、コンピュータ・プログラミング言語設計の難しさをあらわにした)。
次のコードはALGOL 60 でn × m の2次元配列の中から絶対値が最大の要素を求め、その絶対値をyに、添え字をiとkに格納する手続きを記述したものである。なお、コード中で強調表示されている予約語の記法は処理系に依存する。例えば "INTEGER" は "integer" と書かれることもある(ストロッピング(英語版))。
PROCEDURE Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k) ; VALUE n, m ; ARRAY a ; INTEGER n, m, i, k ; REAL y ; COMMENT The absolute greatest element of the matrix a, of size n by m is transferred to y, and the subscripts of this element to i and k ; BEGIN INTEGER p, q ; y := 0 ; i := k := 1 ; FOR p := 1 STEP 1 UNTIL n DO FOR q := 1 STEP 1 UNTIL m DO IF abs (a[p, q]) > y THEN BEGIN y := abs (a[p, q]) ; i := p; k := q END END Absmax
FLOATING POINT ALGOL TEST' BEGIN REAL A,B,C,D' READ D' FOR A:= 0.0 STEP D UNTIL 6.3 DO BEGIN PRINT PUNCH(3),££L??' B := SIN(A)' C := COS(A)' PRINT PUNCH(3),SAMELINE,ALIGNED(1,6),A,B,C' END' END'
PROC ABS max = ([,]real a, REF real y, REF int i, k)real: COMMENT The absolute greatest element of the matrix a, of size ⌈a by 2⌈a is transferred to y, and the subscripts of this element to i and k; COMMENT BEGIN real y := 0; i := ⌊a; k := 2⌊a; FOR p FROM ⌊a TO ⌈a DO FOR q FROM 2⌊a TO 2⌈a DO IF ABS a[p, q] > y THEN y := ABS a[p, q]; i := p; k := q FI OD OD; y END # abs max #
floating point algol68 test: ( real a,b,c,d; printf(($pg$,"Enter d:")); read(d); FOR step FROM 0 WHILE a:=step*d; a <= 2*pi DO printf($l$); b := sin(a); c := cos(a); printf(($z-d.6d$,a,b,c)) OD )
printf はファイルstand out に出力を送る。printf($p$); は改頁、printf($l$); は改行である。printf(($z-d.6d$,a,b,c)) は小数点以上を1桁、小数点以下を6桁にフォーマットして出力する。
^abBackus, J. W.; Bauer, F. L.; Green, J.; Katz, C.; McCarthy, J.; Perlis, A. J.; Rutishauser, H.; Samelson, K. et al. (May 1960). Naur, Peter. ed. Report on the Algorithmic Language ALGOL 60. Copenhagen. doi:10.1145/367236.367262. ISSN0001-0782
^Perlis, A.J.; Samelson, K. (1958), “Preliminary report: international algebraic language”, Communications of the ACM1 (12): 8-22, doi:10.1145/377924.594925
^Computer Museum History, Historical Zuse-Computer Z23, restored by the Konrad Zuse Schule in Hünfeld, for the Computer Museum History Center in Mountain View (California) USA
^Aho, Alfred V.; Ravi Sethi, Jeffrey D. Ullman (1986). Compilers: Principles, Techniques, and Tools (1st ed.). Addison-Wesley. ISBN0-201-10194-7, Section 7.5, and references therein
^Baumann, R. (October 1961). “ALGOL Manual of the ALCOR Group, Part 1 [ALGOL Manual of the ALCOR Group]” (German). Elektronische Rechenanlagen: 206–212.
^Baumann, R. (December 1961). “ALGOL Manual of the ALCOR Group, Part 2 [ALGOL Manual of the ALCOR Group]” (German). Elektronische Rechenanlagen6: 259–265.
^Baumann, R. (April 1962). “ALGOL Manual of the ALCOR Group, Part 3 [ALGOL Manual of the ALCOR Group]” (German). Elektronische Rechenanlagen2.
E. W, Dijkstra,Algol 60 translation: an algol 60 translator for the x1 and making a translator for algol 60, report MR 35/61. Mathematisch Centrum, Amsterdam, 1961.[1]