{wan-zhanyong,taha-walid,hudak-paul}@cs.yale.edu. ABSTRACT. Functional ...... [28] John Peterson, Paul Hudak, and Conal Elliott. ·ambda in motion: ...
Real-Time FRP Zhanyong Wan
Walid Taha
Paul Hudak
Yale University Department of Computer Science New Haven, CT 06520, USA
!" $# &%')(*+ !,-+ ,.
ABSTRACT
/ (01-21,(013-,4#.21-2565687 /:9= *?@.,(2A13-,B#.21 25656*F,5M1(D*ef56#,56,A1fQ /:921,*F-.21(,G( *F 56# 1-kQ /:9on 21*R>*R1,#U12 *>- .21,*F*F81 ,*F,@(- (,D21*1 *B# #I,028# 21,*F,D!1* 9 ,N $Z56, /:9); 7 9 Z> /:9= pM*R1(! O.#I, -,T@ ,D21,61 ,U156,M[*F#(,M(-*R_Q@,(0 ],0h ,D( 1- *R1,D#qQr2`]3-,q# 21-25s*^*R1(NtEI- .,+uZ?]"-, 3,UQ,Dh.*R1 K21"b[ --,D*H@N1 [EI ,S21,D *F 21(,D*,^*F#N 9 Z> /:9[#2F1*vSS21,(D13L,P#A2F 1 K(#.1 21,*M1 ,b,*F*F,1821, ,1*TQ /:9); # 21-256* wSE*F,^ --,^#A2F\1 AU(wEI,T *R11,V1b ,,021(T# 2125656 P --,M1 A_ *HEI,,V*F @V1SEI, 1,021561wY21,D*F- 21(D,D EI- ,p+CZ *P@*K *T1[Qr (D*T-x1 ,S*F*F ,*K*F#I,(Dn(S1 9 Z> /:9@ 8(kTG21K ,f1M1 ,H# 21,*F, (,\Q>21,(D 21*F->, *F y C1 ,H$ #I,P3L,D21*F-bQ41 ,H-,\*)1,021561 ^21,D*F- 21(D,D EI- ,p+ z *R>Qp-.2 /:9 /:9Y1.2Nq *R1*F E,[#2F1*vYx1FLÄDj&¦V#A2F [V 1¨D6©!ÅÆ Å6#A2F+ 9 - Nb*F#I,"!.?1 ,\21,D (013-,,^(V21,*F,T-.26## 21-( V@N1 YS ,D E*F,o --,8@N1 @ 3!f1_21,D ,*RE*F K1 ,D*F,)21,D *FN1*+ 9 ,N 156,oEI, 3!2JQg1 ,oE*F,8-,f(KEI, (A2F21,H : ,#I, ,1NA8*F( 81,(0 ,*XN21,. ,Dh.*RH,3L,bQ&2\^Qr(01>E*F,6-, ¢NA¤ . . ¤ £+ ¶ ,656#I2FH,D*R1[1 AH- 2f>21"[ ,,.*f1P-!21,*F* *f1 ,6F21,A156,fQG21,(.21*F-X4*_N_*\P*F 21(,MQ@EI1 ],Dh! #.21,*F*F3L, ,*F*)T(-56#
1(*R+ m "L,DT(-F21E.1-PQ 2o>21"S*)21,*RF21(D1 ^1 ,f21,(D13L,\#2F8QB1 ,_ --,\*F *J1\56NJEI1 K1 ,o156,8K*F#(,f,,.,T16,0h ,D( 1,o*F (0 (D-56#.1- *+S·V,T( ,3-,T1 *HEkn 21*RU.*R1 - *F SO> .N¹p,D21,T". *MQ821,(D 21*F-¸ /:9,,M *F(D21,01,)56! ,D*-#. D, 2A1*F,5M!1(* = H(-1!- *g56! ,*G7j*F (0 \*4)., 1.*F,5M!1(* = *g1 Ae_1 , *F(D21,D1,(*F,GEI, A3!21*4 ,3L,D!1*B- U,,\1H 3L,@3,D*Gf(D-E,)*F,D>QX#I-1*+ Z *e56,*:1 Ae1 ,D21,*4\1,D21,D*R1 )O.#I,*F5621# *F5 ¢ £ 21,1 6EI, 3!21*J^,3L,D!1* 56,N ¢N £v ³ ¯¬´µ^®tÊÉ«!¬.®¯.°-±²k7&Ë.®Ì-Í!¬M® = @ ,021,4Ë.®Ì-Í!¬¸®*:G O.#I,:@N1 H(D-*RF21 (D121*Î.±µ-.°A´Ï UÐÑ Òµq®.+:Z *g*F-5621# *F5a5M"L,*XNg#I-*F*FE,f-.2:21" 1o(5\E ,EI, A3!21*4_,D3L,1*g!1,8*F,o1 ,oâðAç Ó (- *RF21(D+ ZXo *RF21,--*F##I*F,,@*F _1o ,Dn,êDèò!íAê0áAôçÕTõªçäï,_ A3-, 1\*F# *F êDèòíAêDáAôç>ÕTõ ì Ø ä è é â0çê0èò!íAêDáAôç\õ ì Ú äèHâðAço7jÕ = *fM*F-g1 o*o1 ,_#I!F @*F,U*F 5QB1 ,H*F-* ì Ø ìAÚ +4Z -*F,oQj56A2Õ Ø õ ì Ø äè é â0ç>êDèò!íAê0áAôçÕ Ú õ A ì Ú äèfâðAç Ó Õ Ø Õ Ú
é ä årçT7 = ç äNï)â_7Ré ä årç L= é ä årç T7 = ì Ø,U([- b1,D21g*R1,\1T*F-*+ / 28,Dh 56# , ,J(^.,Dn ,G1 ,G21 85MAh 5_5yQX8*F- ì *>Q&@*v é â0çê0èò!íAêDáAôçG×Dù&%8õ ì äè é âçêDèòíAêDáAôç%('*).Õ6õ ñâé òDóT7 äèHâðA ç %.'/)!Õ
é â0çê0èò!íAêDáAôçêDèò!íAê0áAôç Ø õ ì Ø äè é â0ç>êDèò!íAê0áAô ç Ú õ ìAÚ äè é â0ç>êDèò!íAê0áAôçGÕTõ ÓAß äNè é â0çöDô èç1äèîâf_÷ Ø \Ô¸âðAç Ø îèç1äé ûâðAçGÕMüc÷ Ú þ Ù ÷ Ú UÔ¸âðAç Ú î èçäéûâðAçÕTü ÷ Ø 1þ %Uäè âðA ç Ø îèçäéûâðAçÕTü ÷ Ú þ0Þ
Z ,^é âçOæ$öDô èç1äèîâ8 ,D(21[.,Dn ,*oM*F,D8Q>5_ 1^21,D (D 21*F3L,8(!1!A1-*+ m Ä1§©j&© Æ j§©b*@,*F*F,1NS_*F #256,D1,D21,6E68321E ,U(2F21,*F#I- *1.2NU1H U§¡GK(-F21-X*R.*R1,56*@ ,*FX+>Z ,6îèçäé(*RF21(0©C56! ,b@ ,Q C$1,D56#I,D21.21, R GTS U5VJN6EI,(-56,D*JF21 ,-+JZ ,8Q&@^# 2125 ,0n,D*J*F (0 _*R *R1,D5Pv é â0çêDèòíAêDáAôç4õW Ó 'YX Ó %.)>OùZ% Ó äè é â0çGöDô.èçäèîâ Hô.è_ÕTÔC7âðAç A= îèçäNéû&àJáâèM7âðAç87EG I-K[L\I =F= ü .ô ]YÕTÔC7âðAç L= îèçäé û&àJáâèM7âðAç87 R GTS U^V =F= ü äNèM7âðAç A= îèç1äéû&àJáâèM7âðAço7EGJI_K[LI =F= ü ô(]Bþ
2.3.6
.ô ]>þ Ù ô.èþ@%
Switch in Terms of Continuations
i 8*o#I-*F*FE ,U1T,Dh.# 21,D*F*)1 ,_*R@1( b(- *RF21(Df`1,D2156*)Q (D-1.1- *f7&@ ,D21,9TP÷T21,8Qr21,*F = v ¢ ¢ ì Ø êOà@ä çFöáHô èfÕTõ Óß äNè ì Ú £ £ é â0çBêDèò!íAê0áAôç\õ Óß äè é â0çGöDô.èçäèîâ8÷^ÕTÔ ì Ú î èçäNéûâðAç\ü äèM7 ì Ø îèçäNéûâðA ç Uü ÷ þ = Þ
÷þ1%
/ 24(21NO,G@ ,0n,B1 ,O.# /:9a Ø b b cOd ·[,8*F,o1 ,8A1-Vû ; ø-þ *,Dh.#(N16 *R1 *F TEI,DO>,,M1 ,@21,(D13L,JO.#I,*4Q&2 9 Z> /:9 /:9);
i
vv Ô
O.#I,*G*J ,0n,K*GQr-A@*v
äèíîçÖ0ãlâò!éDÖ0îè-ä çIÖ
i*j:i Ö i Û Ö Y i kWi Þ
Z , /:9); *F *+6iOb1 ,\n 21*R8(*F, i @> 3L,_N1*H *F41,D21#.21,D1-+ iO`1 ,\*F,(-k(*F,-:N8@B56,l CRK*F-4(2F2F.P^3, Q4O.#I, i N +Ji$ /:9); 1 ,*F,H>- lSEI,8G21NF1, ÓnmOmoi ì mOm «!¬.®¯!°-±² i .21,*F#I,(D13L,N+4)*F \O>6 N¹p,D21,@1,D21# 21,0 1*U5M"L,*H\#I-*F*FE,T1[.,*F(D21EI,T1 ,^AF1,D2U(*F,Pp * CR *F-?QgO.#I, i N.+ Z ,MO.#I,Käèíîç8*\b# l(, - ,D2_Q&2U1 ,T*F-A1 21,TQJ1 , ,Dh!1,D21>*R15_>3!*FE,61P1 ,M*R.*R1,5P+`Z ,Sãlâòép*_Q&2\21, !5_EI,D21*Gtîè-ä ç\*T[*F,01-xO.#I,-+¸Z ,PO.#I, i Û *T CO5M.EI, i NS3,-+ A3!P1 ,6F1,D2_O.#I,MV1 ,ME*F,T. -,U@*8*J1MF21,oEI,D 3!21*8P,3L,1*~ +
/ -.21, ,Dn,*81 , 9 Z> /:9v
7&ç =
i
_Z3 ¡T¢$¤£T¡J¥\¦\¨§ª©«Z:¬ >&®¯¦-°¢±¨.¦Y«Z©¬ 3²³¬ ´ t {SAÕPv i %
ÕPv
i
7jê =
t
×ovãlâòé
t:{KAÕPv i Ø % Ó v i Ú tT]ÝÕ?Þ Ó v i.ØkWiLÚ 7jê =
7jê =
ty µ>vîè-ä ç 7jê
t ÓLØ v i.ØkWiLÚ t ÓÚ viØ tT ÓØJÓÚ v iÚ
t Ó v i t ÓÛ v i Û =
7jê =
t
7jê =
ÜÂv iÛ
ty t y
7jê =
ÓLØ v i.Ø Ó Ú v i Ú 7jê = tTW7 ÓLØÙ1ÓÚ = v i. Ø j*iLÚ
J.·¶T9 ¡J¢$¤£T¡J¥\¦\¨§ª©«Z Z¸A¹,ºT§·¢¼»½¾2Z¥\y¿Z¸J&&¤©«Z:¬ 9²³¬ ´ ],3L,8$ #I, ì Ø ì Ú *F - lkEI,6QG1 ,6*156,UO.#I,-: 1 ,8*F(-#I,8QgÕS*@ ìAÚ + Z ,4$.#I,4QG(1!1-H÷o *?1 ,gQr215 iYki>~ 56, 1 X@ ,8Q&,HG3,eQ $ #I, i ÷oEI,(D-56,*?@*FQ $.#I, i ~ + m 21- #SQ45\.1NT21,( 21*F3L,f(1!1- *)A21,\.,Dn ,KE é â0çOæ$öDô.èçäèîâ+ m (-1!16 ,DnN1-_ *g1 ,>Q&215÷HÕTÔxù? @ ,D21,JÕT*>1 ,GQ&215M#A256,D1,02BQr2@÷I!Uùk7Sîèçäé1,0215 = *o1 ,6 ,DnN1-bEI!.+H
)1,\1 A8ùV(kNb(-`1 *F, (D-1.1- *1 ,P(- *RF21*^,D*RE*F q[*F,DTQ *F56# ,8*F(D-# \21,*GQ&2)(D-1.1- *v +@Z ,J.,Dn 1*>Aù!ø-%UÃR -56,D!1*vÀÄ
K
ß ?21,ÈC ì ,3A1,*81 ß N e _ *
#pA1,b1PEI,D(-56, ì\~ N +P
.56,D156,*>,)(-5_E, ìÇ kŵÆ
K ŵk Æ ì-~ ?21,-ÈC ì
ÀÉÁÊ
1 ,8$oÃR 56,1*3-,D2!,Dh.,(.1X23C 21&N.-QI 9 Z> /:9); # 2125C* 56! ,D,K*@K nN1,o*F, ,(,)Q:1,D2(D1-*G@N1 K1 ,),. 3!N21-56,D!.KT1 @*F,D*F,f ,D*é â0çOæ$öDô.èçäèîâGSîèçäé*G*RF2- FQr2FGA2 @N1 U,G,Dh.(,D# 1-vX1 ,G3- ,>21,D1.21,fE ì îèç1äéû Óß ø)ü ÷Aøþ .,*J) ,D#I,T-`^Qg1 ,8,3L,1*) Óß ø %+Z *)EI,D 3!2 *B*F56241o1 A>QpêOàGä çFöá+gZ ,@56131-\Qr2B1 *>.,*F-6* 1Ma1 ,8*F,02öDô èç1äèîâfA÷AøHÕ!øoÔxù!ø%Uäè ì 1 ,P(!1!A1-Y ,DnN1-*^A÷Aø`Õø[Ôù!øL%`21,P ( -, ì *^,Dh.,(.1,W@N1 q1 ,`(-1!1¸,!3.N2156,T,Dh! 1,D ,T@N1 K1 ,),Da ,0nN1- *+ / 2G1 ,8(- *RF21(D ì îèçäé û Óß ø ü
÷ ø þ
1 ,\,3-,1*\û Óß ø þ)A21,_1,*R1,`- ,UAQr1,D2f1 ,D28 1:1 ,Hn 21*R (D( 2F21, (,-X1 ,b1 ,U*F-4,3L3-,*o1K1 ,\ ,DnN1-kQ1 , (D2F21,*F#I [(!1!A1-XB@N1 WN1*\Q&215M@#A256,D1,02U21,D # (,VES1 ,63- ,6Q1 ,6,3L,+Mi QGP,D3L,f((.21*:1 , >,8-,DJE("T1 ,o21-X1,0215{@1 ^1 ,o*F E 1,D2156* #p1,+
3.4 What Can Go Wrong?
9 Z> /:9ø ~ % ,"L,D.v
èµù"êJúëû¤ôä&ãTü¨âÉäOýë½â¨ú_í_î t*Àþt ß v i t P { ÕPv i %:ÀF{SÕ:Âk ß % t$ ^} ~ *Á ~ t {KAÕPv i Ø %O^} ~ Á8{ Á ~ uJt P { Õ`v i.Ø %g5}n
t$ t$^}:Á t$^}={/} 4.1.2
iÚ v ì iÚ
Assumptions about Base Language
ì v
Oi T2.,D2G1\#.21A3L,QX1 ,JE*F,J-,-v / N21*R 1 AM,3A1Y1,D21561,*6»# 21,*F,D213-,*UO.# +x.,(p 1 AH3- ,*fQ@NQr1,[$.#I,UEI,6QG1 ,UOK-E!3!*fQ&2156*_.*R 1*F ,SA@1 ,8 ,-+Z N2 1 AJ1 ,oO.#I,8*R.*R1,5º,ÃR.* *FE *R1N1 13!$+:Z ,*F,21,N21,56,D!1*?21,Qr215M,_*gQ&@*v
ÿ
E ,D(-56,*gA21-,D2e@ ,D Óß ((D 21*LNQ 1 ,*F,Q ì Ø *g21,D2e1 I 1 JQ ì Ú +
4.
èÚé·êTëìJí\î
÷$âÉååêø
âðAçGÕbäNèHâðAçGÕ
21,! N21,*o,3A1^âðAçGÕbbb,D.3!N21- 56,21 ,J*F,UU1 ,J ,D2131-M*a Øb b cOd ÷Aøgþ Ù ÝÕXÞ ù =
Ö Ö ì\~ Ö Ö Ø Ö Ö ù:Ö Ö Ø ø Ö Ö Óß ø Ö Ö 5MAh p0 qÖ Ö ìAÚ Ö Ö @ ,D21,8ù: ìAÚ îèçäé û Óß ø ü ÷ 5MAh p0 qÖ Ö ì Ú Ö Ö gø.Ö Ö Óß øÖ Ö 5MAh.Ö Ö ùgÖ Ö Ù 'S% ' 7j*F(,67Ô ÷ Âk ÝÕ?Þ ù = f*Á = ÖÖ ì ÖÖ
9 9
Ô Ô Ô Ô
R
fÁyQ&2o*F-56,H÷ % Ù 'Â ø_`ga Øb b cgd ø þ Ù Ù 'a%
Ø
m M,f21,f.- ,-+
5.
DISCUSSION AND RELATED WORK
,3L,D2o --,*K 3L,bEI,,¸# 21#I-*F,t21W1 ,w¨^r© ! Ä¥F§©§Æ!¨]¡L G§(ß1ÂQU(56# A1-X+ Z ,V-, ,D2N #
21#I*F,@Qr (D1- -- , ÝX(Dl ¢ ~ £p*6,Dh 56# ,GQp1 * *R$.,>Q-,-+ z 21,>21,D,D3-!g1@1 ,B# 21,*F,D!e##I,D2g21,>1 , -,*M. ¢N £ ÝX *RF21, ¢ ~ £ 4]e*R1,D21, ¢N ¤ £e@ (0 >,D21,>*F#I,D(Nn(Nf.,*F- ,oQ&2:(-F21--Q.21,N 156,4*R.*R1,56*+XiO !-j1 ,8(D,F2? 1-P^¨1Å©I- _156,D 2.,D21,^*F,! ,(D, Q?3 ,*+4Z *>*G-*>181 ,J*F,,D(,@QX3,*B-, ,D2F A1,_f1 ,B,Dh.,( 1_QI 9 Z> /:9EI,U1,D21,*R1 K1K*F,,M[1,D 21-S*J*F6#I*F*FE ,HK1 ,N2@*F,DF1.+ m .E 21` 15M1 ¢N- ¤¤ £4*f^(5656- K*F,SQ&215M 56!.,?Qr2HM !.E.21lP*R.*R1,5PS(*F*R1*oQMnN1,H. 5\EI,D2 Q4Ä1§©jR§-6§¡L0¨+e})*F(021,D1,G,3L,1*:F21-,D241 ,*R.*R1,5C1>ÃO56# Ql21-5 - ,656! ,U1` 1 ,D2+^·x1 ]-,656!.,-:1 ,6*R *R1,D5 *RA1,f(0 ,*J(-1!- *FN+ m 1 - - K>,H 3L,8JQr215MN ,D*RE*F ,x*F( ¸k21,*F G>,`,Dh.#I,(D61 A@W1 ,P56N^*
=
1 ,`5MAh 5_5 *156#]#I,D21!¸-,*T1],D21.o 9 Z> /:9- ( 2F21, z Ý = Q&215M,*e*R.( 21- *?#I,D21- * *^n21*RF (*F*8#
21,NYQ& (D1-j83,*^(,0¦0©j¨ ¢ ~-¤ £+ * C µN È C (Nb(2F21,D*F#I-V1 /:9,,\1 ,56,o3L,\1o,D3L,1*eH1 ,*F, O>H##.21L(0 ,*+eiOM z Ýe!,3L,1*421,JN15M1,D\*F,\18#I,02F Q&215yKLÄDj§© L*F (0 _*:21, $.#I, +:·[,),Dh.#I,(D>1 1 *B# # 21L(0 \(6EI,G *F,6*BoE*F,*4Qr2>o-,@Q&2>(-5U E 9 Z> /:9,821, /:9,UA21,\1,D21,*R1,``1 ,_*R1.SQ>(D-*RF # 21,*F,0213. 1- *QX,3, (,) 9 Z> /:921"KP.,*,D2F2F+Z ,8(*RF21 (D13L,o*F,5M!1(*@Qg#.21, ,*R1,D2>7!2QrJ3L,021*F ~L= + })2AQr v ,021*F ~ e(-,H ,* z ,*-:eF+ z ! ,D 61,D2(D13L, ~ } 5\N156,.lH 5M1-K@N1 SK,5_EI,.,Ml,-+i$ ÁGR§Ä01F¡&©Å¨_§ or¥ e0¨1@Ä1§\© 010©Ä0_§© H§U&© -È FÄD BÄ ©!ÅÆ Å0¨1I#,* ¤ ¤ +po e
)i _ ¶ (D1-EI,02 - + ¢ A£_>-:eFo ; "I+ / (D1-p21,(013-, 5MA1X+ iO ©$0©Ij§©I- §-© 0F0©IÄ\§©^ÀÆ!©ÄDj§©I ÁGR§1ÅF_\&©Å#-,* -~ A~ - , + Ý-(fd>,*F2p+ ¢N £HZ ,D2F2FPo 1,D2 ; ±Ý,f),D21 (-y .-jv m ,D(213L,f --,8Qr2J*R.( 21- - * # 21-25656_Q:21,N 156,8*R.*R1,56*+.i$S),D* f X , N12ÀÆ!©IÄDjj§©I-IÁGR§1ÅF_\&©Å ©ÅÆ Å0¨_©I¡ §)ÈÆ!$0 JFÄ¥&$FÄDjÆ.F0p3L- 56, ¤- 6Q 1ÄD §$0¨8r© §)ÈÆ!$0 IÄD0©IÄ5 ïGF¡r$1¡T r ò @§§¨H©I¡ ò j6©&¨1#,* ¤-- ¤- +X!# 21,D2F v ,021l + ¢N- £HZ -5M* m + , ,D2+Z ,o1 ,2FTQe .E 21 15M!+Z?,D(0 (p21,#I2F,D21"L,,D + ¢NA¤ £ z 2F1 Q&5MX+ m O.#I,o*R.*R1,5{Q&2)EI ,M*F#(, MQ& (D1-X. #(,8 #pA1,-+.iO Æ!F§0È F© &r)È.§¨1&Æ! §©KÁGR§1ÅF_\&©Å`¾ @4Ág¿ ÝX,D(D1 21,o
-56#.1,D2J!(,(,+p.#.21-,02F v ,D21. ¤- + ¢N~ £ ; + "p I+ ; ,0.1P-,* ; +.·V-.,02_7j, N121* = + ÝX-, *F"L,j m 9 ,#I2F@-K1 , ; 21-25656F
)-. *RF21(0 ; .21,N / (D1-J Ý?-,T7 v ,D21*F- + ¤-= + 4Á §jjÄ00¨1 ¤- 7 = z ¤ + ¢N £ ; "p+ d> l.6.-5M^*F#I,(Nn(8,5_EI,., l,*+ § -,D2_7j, *+ = +Z ,)21,3!*F, 821,D#I2FJ- 1 ,o-211 56(H-,\!(0 ,56,-+ 4Á §jÄ0¨1 ¤! 7 A¤= v ~- .}o,D(,5\EI,02 + ¢ ~! £ m *RN2 9 ,- ; ,01,D21*F-p