Partial Evaluation for the Lambda Calculus

17 downloads 26193 Views 470KB Size Report
evaluator was implemented, self-application gave the usual speedups, and it has ..... example well because the recursive calls to app should be unfolded to ...
                                 ! "    # $     " ! !$$ $% &  '! (')     !) *$ $    # %     $      + ,         "   ! -     %     %      #     !   " ! $$! 

$!     # $  &$     !  "     %      #  % )   !   *$   "%)      $  #      Æ! "%)     # !   #%  $     # $    # !

!

   

  ) ! "    # $  & (  !#  .+   ( )  $!   %$ %    %

 $ &    ' "  % )   %$ %    "%   ! - %# ! $    /!  !   "  %  !  0&    !$    ! # $  "       ! 0&      %     $  $!   # $  1 #  2  3 $% !!$

   .. " 2     ) $  "       %     !     $"4!      !!$    !  # 

  "  # !

! 2 5 & 3     % !       & &   "$   '    $"4!    )  6 7 ! &     # $      "3 !  8 ")  '     !!   '   %  !     ! 8  )'    $  $%          $  *$   &    # $    %$   "   ! !    " ! !$$ &$ !    ! "  &  Æ  # 2 09 :%  #  *$ Æ! )     $   " ! !$$ $ % ;% )  "  !  '5  !  " '         " '        Æ!$      #  ! - $%       $   !    &    '  %# ) ! "    # $      %$ %

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

          ) -   .&

'/       &

')

# $  &  ) !  % #  $ $  $    ! "  # !

! " <  $ %  !*$  ;%!    5 =

>         

 ! !   " ! !$$ ' & !   !   (')     $     !   &   !   )    &$ "  "   %     !!   %$ % ?  " ! !$$  %       % &         &!  $!   (  # $    %   3  $  $%    #  "   '    ' %# "& /       ! @    &  #  $!  '! (')    8  99A        B  B  "   B  8  ?"  !  8  8  ?!    8  C'      8    8   8     D 8     8  2  !  B  99A  ( E'   #  "  $! !$

 !  (')    !$    ('    %$   $   ( !$ # $!  C '   %  !$%  !  " ( "                   

      *$#         (     !(!     " )' ! - $ %     !  & &  & !

!  " ) ! !  !!3 $ %  E     %!   & 3 8C ,

% (

)')  &)#  %$ % $   C%  5 & 3  "  !    )  &    "      ( &)    " ) '5    %     !  !   ! -    " )' # &       5  D       !   %5 & 3     # ) $  &! !$  #     P"%)    O   (  $    !!   & 3 $     &  /  ) $ "$  !) ! #   %  3%  $ $ "   " )'   !$   ) ! "    # $   %  !      # (     &)#  %$ % @

 '   #   !  :  ! :%%   %# ! % ) !  !  # )    &)#  %$ % $    " )'   

% & )    )   %  "%)    %    " )' &  #    &)3&   ! %  !  O %   N% $") *$ #  !  ) #% %    $   )  . :     # $  !$%  '   1        "%)    $ %     N%5 ) % 

% & )     '$   * :  $  "%)  #  # $   " )'  ! ) -  $   # : 34Q    " % # %    0& "%)  # "    ) ' @       " %5 !   #$  8 &    # & & ! )0& "%)  #)  !  " !   $ % !        @ 2   $      )&  !$ )"  !%    " ) ! !$$ 

%   ) ( ' +  # !  %  %$ %  $    ! $  )/!  $! 7RD  $   $ " #  "   " )'    $ $ ! -  N !/   #  = %#         M    # $ )   "  ! )")   ! )")# $  " )! !$$ $ % :%%5  !   %$ % 6   # $   ! -%  %  & !$   /!   # ! % ) ! '     ) #$ & 3  ! )"  "%)  #  8 &     + %#          ! )")# $  " )  $ % :%%5 !$    " )! !$$ .    !   /!  '%  " )' & )!  $!   $!% '

$! $ "     &       $  $ ! -      !   !$   /!   !  "  ! " $ %  

%! "        *)  $    #   ! " &   /!  " )'  ! -  !  " "  $ % O) !    # $ O       ! "  #   #$  ) !    # $     !   ) -   !$    & 3 "   !   )' %    ! "   ?   -%  N$% 6  & & ! -   $!)    %  !  " !

 $ $ %   ! N   ! & ) #  "      #  $!%  $!    %  $  

 $   %      & ! -%     &    %   %$ % 8 " )'  $     $/     " "$ 3  $  %$ % ## $"    $)   % !!3% /

0!  

   ' !  ## (%   !     %       %   Æ!      $  " '!$ "       #    '       &    4$  $  %    (%   !      C   !    " '     "& %#  "%) $  A       ! -   ) %  &  !          

C   !    " '     "& %#  "%) $  A            ! -   %  &  !        

   

                                             

7   #$ "3 !  )     " ) ( "      A     (  " %      ! $!    *$      " ! !$$ 

   #

   $

 <  )       " ! !$$ "    %  $!   " '           &   #  "     C   !   %# "%) $  A        @ C   !   %# "%) $  A       +  , + ! -  &  !   &  %   !     #  "         #  &%  ! # $ 9  A       A          8 7     # $    C%$  @   % %  %$ %  $ & !!    9 S 7     # $    C%$  @    " ! ) !$$  7 % " %     )   (    '      &)# '    L      # $   ) ! -  &  !  # $  " '    7     # $   G   ) !       # $      6

 ?    !     &   " ! !$$      ! @  " #   "     C%$   N&   

#  /!   $   %   $! "    # $        G