Scheme@33

4 downloads 0 Views 101KB Size Report
model, from which Scheme acquired its proper tail recursion and first class ... search in compilers, semantics, partial evaluation, and other areas. Dozens of ...
Scheme@33 [Extended Abstract] William D Clinger Northeastern University

[email protected]

ABSTRACT      !"# $!# %#&'&()+*,&-

 &./!102(3-&2546#%7/% 89-.+#:$/-&2$ -)%#!--#& ;.=! +& #&2?"&- &@&(A9 &-9B

# #!#;./C!#D/#!)&$# /0E !  $-&.-0F9(G&- H2! #&2I0A;.JK9-%Y.K!# 2`&2!##& &@H-%!&( x #$Ey )&2>%;./  @$/-&2 !# M"*J(a4ƒ&( &A&B !#/ &w„1! D#!&$# N.,E! F$-&./-0!#&Nˆ&Y46  !#&2-%†4W- ! -+2./&2$/.K Vl‰W&2  & x  $IMP/%  &2-# .‡&l'7/-%#&2o.o -&Y46# ‡$%'&( (a#&2;!:$-&2 -%  # 7!  2 20";.K/% 2y , /Š; o!#&j ^o#J!  ; 2 o7‚H/0A‰A‹O0AŒUV&2I0   V0/;.^‚2YH- $/Žw‰A'*,-#$/M

‘ #I--&2$  H2:-H/#46IU-%! .E&(/% 20-% &2 +&(w&2+ .T&P#-T&-# 2##=+!3C _.7!#!# .XN*,&-8 &./!10!# >W&2 N&(F/% y )7V+#! &-# #&20U.K&!##CH&2!#/ &j&(6/% `&^ $-N.VM

2. {}[-POWER -&2$ 0T/%FROM  #OSIMPLICITY S-!9^&( (G  x #$[46#R -%#' ##7!##>6$ !#&&2$V7&-@Y9;.Cc#~’Ysut

Œ:-& -%  # K!  2 2P&2! .‡ S. .  &C VL$#!## =(GY-^&L&2$J&(N(GY-20w /X V  - &YH/# Jl48ˆ;.R->-  &S;Y 7ˆ@2../9 &;!I(a/-@$$ Y-6-VM “ &-+D $!#20"/% +&2!#H. x #$Ey  (G- '$/-&2 ! ”c#~~sW V -$!3# ./V/ #X&$# S469L!#D/ !8&$# ;.j VK-B  &YH  =!#!8->-##&2C&‡^.V/; # D`&(,H-  !  .P& /•}M /% `. &2>-%Y@OH-VS7!#!U/C & (:-!#6(G&-,(a&- # D/$/-#&2046#S&X->-#B  &N&2S&Y4RV'Y-`&2 $ &2.I0;/– &X(G&- $/-%#!6;.L–X# $-& -%  # S!3 ;  ;O#PŠD/# !#S& ƒ&L$$ &-O &2>P&( 7Y•}&-N$-& -%  # +$-%2./# 2 A#',&.VM “ &-AD $! 0-@-T&!9V #Aˆ .w&("D$/-#&2 #'&-`/% 2t —˜™

t#t š t#t š t#t š t#t š t#t š

›œ žŸ ¡¢Ÿ£}›œ¥¤¤¤¦  — ˜™ ¦  —˜™ ¤¤¤K¦ §¨ — ˜2™©—˜™ª—˜™ ¦ «¬2­:®O›œ —˜™ ¦

‘ 8U-W$-&.#&2:-8&8&(8! + _.N!#! 0 D..^&P!#!#&45(G#&2@&^$/ Y- 9-%-V=+ &(U- 2 M „ ‘ )! >F&(/UB %ˆ2A X6.#  &(E/% 2?# C/% ! wH2Y-  !#)&C #.

469[+% !#P-(a-„1&2B]!   H&-%†+48&! .ƒ#XB $!##(3VS @HP(a--A469&2/6-9B #=S&(+-!#'(a&-H!#;Y  o&$ -%&-;.|&2$ -%;./ &( $-&.-S!#!#0@K$;Y-%SH9-&2 C(G&-P$-&./-B H!#.XH2Y-  !#0/;.X$#  >%ˆ+(a-% 6(G&-8H2-VX$/-&B ./-T!#!1M ^&-  /!#V0_ # P$-&./-,- 4A !#&SO7Y-&( -# `&2#;Y &B…$;# `>}V/!#+„…‰8Œw†WA &-7!10H (a. %!106>}V/!#S&( $-& -%    0N;.ƒ&(- Y-%.# j  &-6;! .9-W>]V!#,W ˆ#;.+&(E>V%#N Y-W(G&-6‰8Œw_M

‰W&2 .-0(G&-6D $! 0N(a-N-(G-@ & C# ,! C _. D/$- &l(G&-C¨S ! &4M^{](8X(G#&2K¨=4W-X-$/-.

Vƒ9P!3C _.lD/$-#&E06469|=./V/; #SH/9-&  $$!9V/# 8)H!#)& ( ;0`¨y I-(G-) & 648&! .T-&2!#H &O&2C&(W+!##> &2;.S V'+&-! C _. D/$-#&2Iy  (G&-7!T$-% -P&( = = 20N#>. &( -&2!#H# &79T#;..'H2! 2tA ! -`-  N;Y,48T$. &JŸ¢¢ !« 2Ÿž2Ÿ "##­ $%ž§«­«;M ‰W&!#V0A'  &L$-&./- 48&! .l& $! #l`9+.&Iy `ˆ&4 &=2..`!# >`&S + -M

(!(!(*) §,+¬-|Ÿ[«!2Ÿ2žŸ".[Ÿ,-¢|Ÿož§«­./.$¨|ž§2«­/«0$¨ (!(!( -!1 /¡¬"/«32*"¬­%1"%-«oŸ[ž§«­o­%4/Ÿ­|§«ƒž§ 5¬6/ ¬%#¬7­. (!(!( /4 Ÿ«L¡¬¬-RŸ¢2¢¬2¢[­#$J¬%+¬%"%/0-!1 /¡¬%"98;:Ÿ 7/ž2¬=< (!(!( (!(!( Ÿ¢¢# «!2ŸžŸ,"# ­#$!2 ž§«­/«?> @BA C>E/D ¦ FHG ¦¦¦ (!(!( " ¬2­%1"- « C>%>.>I/D ¦¯C> F?>JG ¦¦ }¢¬¨/§I-¬ Ÿ¢¢#«!ŸžŸ"#­#$!ž§2«­/« >žŸ /¡¢Ÿ K0/¦ ž2¬2­£}¨ ž2Ÿ /¡¢Ÿ K/¦ &H./¦¦2¦¦ 1 ;IŸ 7 žŸ ¡¢Ÿ£K ¦ 1 ;,Ÿ 7ƒ. ¨ ¦¦ /¦¦¦2¦ {}R 206&Y4WH-0N$/-&./-'Y-K& /•}P [9-^&46 -# 20).L-O.#>#+(3-&2 !3C _.^D/$-#&+;.j&B…D/$/-#&2MC 2y @$/-&./-TK `- Y-%..KL M N OQP N &( ! + _.6D/$-#&0;.+-8 -%!#!#V`-$/-.   PJRS N # T N 046#7Y-@.%T>--:;YW&2C #6$-&B ./-2y F&./@„G]V$#!#!9V6&2 $#! .@(G&-ª&(/)&-# 2#!! C _. D/$- & †"469X9U  V W VXV1046#X(a- :AH!# &(w! !EH2Y-  !#6;YN&-N(a-`469#^$-&.-y N&./2M ‘ &O(3-7H2Y-  !#+L X- -%./.‡ Y  N O,QPZ,  [M !\JR] N &(UT$-&.-@&2 •>M /% 20Y!# ˆ28 &2>U&-"$-&2 -%  # 6!  2 2)#A*,!# &2!10 # 'R]W^ PT%R R _j„1&- N O[ PT%R R _†7&2$ ._0A&‡!#!6-(G-7&`L# @D $!#@ &YH@-&!#HT&C@ ..O-  M ‘ # $-&YH ..!# !#VT  $!#w;.T& $!#!9V@ 2-%!&!##&2 &l^(G;- L$/-&2 !  ;YP2.J .H#!#!#.ƒ &2>7$/-H#&2 . ! 6&( x #$IM

‘ #O--&$ #H^46#!#!@ #HSD $! X&j#! !#>-%‡„>~Y†+ (a- S$-& !#'0I46&O#->`# $-#7-#!9V#>&-#!10);. „…’†8$-&2$ -A%#!I--#&2I046&2# $ &-%@ 6&!9VO&4| B

## l&j =$$-3Y.ƒ V‡'$/-&2 -%  # K!3 ;  &2 C9}V 6! - 2M

3.2 *,!#!;&(F/Proper % 2y )Tail &2-&Recursion !;>-/-)7-&B]D$.C#&`H-V

3.1 ŒU-#&-PThe &J/%Funarg  208 &2>Problem P. !#P&( x #$[-#.o&j-$/-

 a  aV cO [R# TWPC# N  ,046 % ‘ WˆV& 2y "–X#V #b #8X/(G&-;YN 8(a&-)N>V/ $&#A$;N&2 $!#D/9}V %#H2.P VO-Y  X&#;Y#&2A#!#!## 2!9VMwŒ:-&$ -6%#! -/-#&2C#UN# $!#w .//0#!9V`# $!# ._0 /:!# &2>U!#! # $!# %Y &E&( !# &2>)!#!/$-& -%  # N!  2 U4A> >V/ $/&#T$; VO!#!#&# &2#;#&6-#!9VM

(a#&2T! + _. D/$-#&T&-&-&./2M ‘ CH!# &(6P! C _.7D/$- &Ey T(a- H2Y-3 !#T4W- &2 /%#.S(a-& ./V/ #    AX7$$ .K%‡H2Y-3 !#P&S Y- 2  &l46#% K(G&-7!N$;Y-% -77;$$ .J& -8)H2Y-  !#2y :; 8;.+ &>U-!9V` C &.+ V  ! !10/&2 9#  .# W-.7 VX! !#8&`$-&.-w;Y 2. !9-./V-/-._M ‘ U>%ˆB…!##ˆw #;.# N7#E48 >V'&O# $!# 6 /@!#.'&  &B]!#!# .  `$-&2 !#'0 #ƒ46#ƒ'(a-=H-  !#7&(`l! + _.lD$/-#&2ƒ4W&2!3. &#&2!#!9VS7$7&C@4A-&2 XH2!#T&-N&C&CH!# N!#!1M

7!#!"&-`!3 ; +T&2#>,&(W7!#!9B] VB…H2!# ! C _. ! !#)D;./.`469XN^Y‰8-V+&2.9#&2;!1Mw/% 2y  H  #!#9}VK-(a&-^.$ . $ &j7–  VK46#L46 % !#&&2$U.T&-"&  &2T&-&2!>--E U-%! . #&C-/- &EM

*,!#!#&Y  |ƒ&#;Y#&2©(3-% j(G&-lH-VR$-&.-L!#! 4A>T>V/ $&#T$MAŒU-&2$ -N%#!E--#&2S#N &-–CB #N  &2#;Y &N-`! !#&Y.'&2!9VP(a&-T>%Y#!#!9V d N eWfT$-&./-T!#!#9M g ^`$-&./-2y A&./@&%#6

¡$!$ž2¬Ÿ,- %$,-­Ÿ§I-«  ¡2¬­ ¦ §«­|ž«­o­4§« ( 4§2ž2¬ >ž«­RI§ -/«­,Ÿ -V¬$¨!/Ÿ§I"¦ §¨£" /Ÿ,§ "¦ož«­¦ 8]¨/,§ "«9 ­ 8}¬ 1/Ÿž«Ee¦¦ "¬2%­ 1"- !­ "%1¬ ( ¬ž«¬ ž« ­  " /Ÿ,§ "¦Jž«Y­¦ 8e"¬«­ (

!#! ;w#8&8>.X469#O&-8!#!10;.X#8&W>. 469 jVl&- >V/%  &2>-(G&-+46#LP4 &B #;Y#&2S48&! .S;H &O `-Y.I0 ' !#!U&-@   O [RdPT VeW^N.X W .X&+ ,L   O [RdPT%R R M ‘ ,&2#/#&2 (a&-+ %#!:!#!)  !94AV/#H2!#@&P+&2#/#&2=;Y 48+$;.jCj# $!##9+-  &' $/-&./-X;Y &2%#:8%#!! !10&9)48&! .C 84A>(G!& !#!#&Y,4 &2#/#&2A(G&-6% !I! !#M





 ^7;.+$-&2$ - %#!N--#&2I067./&l &> &(a#&2;!_.X# 2-8&-%.-W!3 ; MW/% A48W6 ./ !#P&( x #$ƒ&j7.Y^$-&$ -7%#!6--#&E0N.ƒ$B $ -"&N;HW `wU$-& -%  # N!  2 W(G&-U46# $/-&2$ -@%#!)--#&2=4A .}V/!#20I$-&$ -T%#!U-/-#&2E0F.& .@%ˆ2'(a-& -Y-&2S(a&-7!U7#T;.S! C _. ! !#M

‘ `  &()$/-&2$ -6%#!F--#&2S#'& /•}B…&-#.'! B

; 2U(G&-:$-& -%  -F&,4A-9A 2!9V &.M “ &-)+DXB $!#20U& .-  $-&2 !#¥&(6../  '# C/% !#+! #>0U &.B ! !#.7&2X&2N&( x #$E0&  !  2; 2N!# ˆ2@‚H/Mw%;.-%. ./B # O- $ w48&! . 2#HNWO >-%W ;N! 0/ V /§«­;0 469|&-= ! *  :Y   7!­ /o . /Ÿ,§ ";M ‘ &‡# $!#   %$I-­ŸI§ -/«L &.o &./!#! . (a-^O ¬ /¡%¬ "J$-&./- 6 &( x #$ Ž2 20;4W`4W&2!3.=./! -L  %$,-­ŸI§ -«7K >-%  &.l469#  §«Y­j.‡2..lO(a&2!#!#&46  j./.o;Y7S;.ƒ!#S&! . # $-&YH`9- .->%;./  7&(8 *,&- &.!) V=# $!#B  # ^'  $!#  -$/-- (G&-C !8&-0:# S  &- x #$B…!# ˆ2>V%YDIM ‘ V'./3.O&M g[OVO48-`./&20 V7&#.O;YAT&.@(a&-N-Y  XS&-6!#&&2ˆ.`•>> !##ˆ88&.8(G&-)!3C _.,D/$- &0;.`8&./8(G&-w#H&ˆB # ^K&-+!#&&ˆ. •>> !##ˆCC&./C(G&- !#!## SO!#&2/-2M ‘ VL&2!#;./.j; &- -`•>>X$-&./-0W.j; &-N-#$N-8•}>N! + _.+D$/-#&2M

žŸ«« Y:  7­!/ ¬­¬-¢« §«Y­

8!8!8%8

¡$!$2ž2¬Ÿ,-

$,-­Ÿ§ -«£ ¡¬#­.¦ 6"¬2­1"%-



¨Ÿ2ž«¬

( g

žŸ««Ÿ§," ¬%2­¬-¢/«§«­

 ¡ # ¬ ­[¨/§I"/«­ ( §2«. ­ "¬«Y­ (

8!8!8

¡$!$2ž2¬Ÿ,- $,-­Ÿ§ -«£ ¡¬#­.¦ "¬2­%1"- ¨/§,"/«Y­98}¬%1Ÿž«EK¦"¬«Y­98W%$,-­Ÿ§I-«IK¦ 

"¬2­%1"%-[¨Ÿž«¬ (

(



Vo;2./Ey O;O  &2 H &O (G&-+*-,W&2XB $ &-%Y-VS./3!#@&( x #$SH!#;Y.'&2$ -%&-@.9Q_-!9VO(a-&2 &2$ -%;./@;.S./3.'&, 2-%`$-&$ -N%#!F-/-#&2EM.$@2. !#,;.77`(G&! !#&48. x  $X-%.9#&27#>.X&(I! !#&4AB # 9-7#-$--y C&.^&K '#Š.L VL'*N& &.!u0`&. (G&--Y  ^&-@48&! .=;H .9(3B (G-(a-&2zC&./X(G&-+! C _.7D/$- &0F.+&. (G&-^#H&ˆ/# j[&-O4W&2!3.o;HS ƒ.9Q_- (3-&2” &./T(G&-N!#! # 7C!#&2/-2M @O!#7.L/7Ey #-$-- 4A`&6•>> x  $It {]O4A x #$R.&=-# 2M/',9(G&- H2! #&2|&(C&$ -%&- .j&2$ -%;./+# $!##.jS9y ,& /B #&2 #7&7S =OS&2#;Y &ƒ(G&-PS9- &2;./9 &;!D/$-#&2I0T&‡=>y ^&D'#'&Sj%#! &2DM ‘   …  `; . ]!# CD/$/-#&2+;H 7  &2#/#&2lC#- &2;./9 &;!wD/$/-#&2E0F&48H-0 &'9-C&2D`-X%#!8&2D9(@;.l&!9VK#(A 9- &2;./9 &;!ED/$/-#&2'#6#S+%#!I&2DM

“ & ! !#&46# S#KC-%2./9 &l&(6Œ)! -`;.l‰W&2#H-0"!  .‡/7j./ ..K&=!#!w9-C4 !3 ; 21P43X %M  …6- "4A)&&2X./-&2$$ .+ 86^{ ‘ *N{ x  Ey :{}&2XB ‘ 5 $;Y# !# ‘   ;-# OV/> „1{ ‘ †A!## 9.P6T(a&2!#!#&46  77Y•}&-, &-#t8&-# 2#!"! + _. $$ -E V !#W;.`/7E0!3 ; w(a/-U.T7/B #07-&20Y& /•}B…&-#.T$/-&2 -%  # 0 &.!#I;.T&XB $ &B…&-#.,$-&2 -%  # /0&#;Y#&2I;.T&#;Y#&2B $# >]V/!  0 T x .R4W ¯$-& -%    0`$$!##Y &0 &2 $#!#-%&!#&2 V©.©# $!# %Y &ª% 0+.#>B -# ._0$;Y-%!#!#!10;.@&/--I$-&2 -%  # /0$;Y- !H!9B #&2I0;;.7-Š; &EM ‘ &2j--%ª-!#^ !#;./Kl.#&YH-V|&(7.! # 9. &2#/#&202– #U>-% 2#U(G&-:  $!# # 8"!  &2#/#&20(G&-7!$ 9%.Y-%.#\#&ªQ_&- &!##.P !#&Y4M

%.-%./#\#&2S, S# $ ..P V^`&2 $ # C./  ;.J.9- &(@--%-S„G46&l##>.‡$ &oˆ$# S &-W# $! †0Y.&-W„G46&N.H&Y. 8463./wH-#]V&((aB /-FF4W-8 !##H.&N;H)$ . 2& 2#!/H!#Y†0;.$/-&B

-%  -0E46& &Y46l./T48-O9 ./#H-2MOŒU-&2 -%XB  -@&(w+ ../.^>V/> 64A.=D/- !9V'7!#!"! B

; 2` P46#SHPŠ&Y  $ &2#,-9 #T4W&2! .' &$B #&;!1?&2846&,48-6# /% )(G&-W$/-&&]V/$# N4A. (GVS$-& -%    H#-& N.'! - 2+!# /-%-#?I& 46&C48-# 7 ,(a&-N-#$# X$-#\.PN&CD-B !F-&2-?_.^& 46& .= @(a&-T>V/> 6$/-&B

-%  # +&(3^H!#.P–  V7& X./ -T;6`V/>#.-45H/#!9 V 6&2S   N Wf ea   .^.-%(a6&(U   N Wf ea  Wc9~suM {>))|%.Y-%.K~2~€  B~2 #O  + * {W>%;.Y-%.SH/   -&2/#'$/-& 46&=&2 +#[ƒ&2 -'*{ $ !###&P48N9-!9VO&#.IM

6.3 *j4lRecent >%;.Y-%.#Developments \Y &$-&F  2#`’##2b/0;.-FN  x   ; ,-# ‰W&2  9w46&26&- #;! C -F48- *,! ,84N.I0,v@Vƒ!#20N.[^96gL.IM ‘ O&2XB  9 !#.=X&  9&(wHS.9&-+„1!3Y-N-.. &'(a!&2 T&,$/-&2 &)$ &-%  !#9}VT }4W # $!# /B %Y#&2t 

, t4­­7 x {,

%.-%./ ;.=#;2./;YC!## -%-#0U;.= V'+#& $;#  !#9#T;Y $/-&2!#9(G-%Y.XU%+7•>&-:# $!# %#&$-&2 &.9U&Y46 D/#&2.=!## -%Y-#MCZ@$9`#@$-&2 !# 0E/% `;

o &-^>(a!N.‡-%#  &-PH#%!##]VL;J &> &-,bbBuVY-B]&! .P$-& -%    C!  2 2M

8.c#~sREFERENCES 01VOQf% WfJ  U 3 Q 1 P43 W T W,  #

 V M;{}w)[%;.-%.=~2~Y€  B~ #M {>)wA0I~2~2M c ’s + $ M*N !#&2S;.'v+M‚M;/7746#'‚M 7EM

[ VPC[# TLfVe ea WO[    a#e  W T  N M 1

^{ ‘ ŒU-0_‰8C /-3./ 220'* 0E~   M

c bYs`‚M ,w;./-M ,w !# & -%$V^&()/% Bu-! .  -%EM 4­­%7 suM ‘ T-H#. @-$ &- &2P!# &-9 #!  2; 2+/% 2M  9 N a   e N 0  „ub2†t ~ /0F~2~2M c s g¯M/ZCM ‰W!## -M ŒU-&2$ -N%#!I--#&2S;.O$; – #VM/{}! W PTWf  N U 3" ##%$& J  TP

'c  T W   V ( N S ,Qf aQR]O[  ,0$; ~Y€  ;~  M_*N‰AK0;‚2C~2 

M c s g¯M‰W! # 2-+c .9&-suM ‘ T-H#.O-H/#.O-$ &-6& /% 20&-,^&  &2 x #$IM)*%+%,- L .$ /0$20 *, >T~  M c €s+v+M x M !#‚-M    9t:+&2 $ !#-A(a&-T/% 0 M *%+ -,  1/)2 /0 'V~2€  M c  s+v+M x M !#‚-,.'v+M‚M_7EM ‘ T-H/#.7-$ &- &2S 20/X./ !#N&( x #$E3 M *%+ -,  1/54760 ‚;Y-V=~€  M c Ys   M 8!#V 0 g¯M‰W!#  2-0;.^‚M  c .9&->suM ‘  -H .  -$ &-6&2^!# 2&-9 #!  ; 2`/% 2M  179  ,:;: ,[ P N 0;b2b/„u†t ’ /€ 0I/$+ ~2  M c9~ #Y1 s 8XM/‚M x # ---M “ &-+! #&2A.O suM ‘ T-H#. @-$ &- &2P!# &-9 #!  2; 2+/% 2M  179  ,: : [ [P N 0 ’~„>~’2†t b< € /€/0 ZTC -~  M c9~bYs+KM $ - -0   M 8XMZ@V/ H/# /0;KM “ ! 0. *`M/H2S-%2lc .9&->s…M  H/#. ",-$ &-,&^ !# 2&-# #!3 ; `/% M 4­%­ 7