An Experiment About Static and Dynamic Type Systems

0 downloads 186 Views 1MB Size Report
Oct 21, 2010 - programming languages such as PHP or Ruby become more and more important for specific domains such as web
c  c         c                 !   7   +   87   * 9 0: ;  C# #.A 7                    

                7                              -  >                             D                   ?                   A          >       

     

     E          =  E                7          = !                                                     >   0  7      7                         >                              

               7                   

   !   (                                

                D      

                   

            &

                  !        0                                         

      

                           

           ?  >  C'4A &            0       0         Í)00  >    0  >  ?           

A      

                    D                               >                                              >                                                         >               

               @ &                     ?  @                    A                                  @    '                        3           >   >       >              >    1     >    2   4   +    

       >       C'3     C'3  +                   ?  

     A &    >    

              >             =  C%       >                               

           C%             >     0     C2              >     

       @        

                >            7C#3     ?         @    ' A                    

 E     =  =             E      

     

       = 7         C#3                                >     C#3     C#3                        >                                >   C#3     @                          !

  ? >      A                >     C''         >        

           

!   >                  

         

 7   >              ?  A   

  (:FF                 +GG E     + !   >               

  

        

      8        >     =     >  C/            >       E   +GG    û                                 +GG   E       ?       

 A              &         

  79:  7 C#1 !    E   >   

                

 û     C/                      ?             

A !          >   D   C#'      >    ?       >         A

Ô

  !   

û             

           ? >  C#2 '# '%A                

            9            >                >     Ô º       7                   >                  >                    >  ?  >     C#2    C#$A               

                                     H           >                      >   >                           ? C'3 %            'A  > H                 

                                 

                      *      >               ? A 7             >   >                    7  > @                  &                    

    >                    7                    

       >  7  >   >                7       >               ?   >             

    A                  

      7            @            >       C'3 %     > @         #                     >                    >      ?  C'2 #$A      >                     >       

>  '$$$       @          ?      @        @          A D        >  ?>              

   >   A   

   9                      >                  

                 @  )>                    @          @         

  @                       

               

 ?         A       

      >          ?     @        A                     @      ?          A7                             !              D  

                                      !                                             >                 +                  >         > û   >     >                    >                   @                                        !        n @   0                                                              n  

                                                      D                    ?    >        A             >  9       >                             

!                                        >        >                >  D   >   >           @           @                 >                @         7                                  ? >    A                   @      @  &           !             ?     A               

ì                        1. @         @  >  '%    7           @    13   12        @  û       >            >        >                    1#   >    1'          



    79:     >    13   >       11        12          >  ì º  #$   7  >  1. @  ?                  C'%A         E   ?-E  A@            E                    

        E                 > 0    D  @              ? A                          

        D           >            ?  E A       P                          ? E A     P                                    

        @       :                

     >            

                     @     >       '%  

                 '%   '%           @                           >    '>'           

         8     ?      

    A       D        

          

                          

   D   >          0@    ?  >  C'$A   @         ?         

A 7          @  ?        @  A                                    n                         

        n          ?    3A ì Ù      û     ?   >  C'3A  >         

   79:    >             

       79: @       > ?   > A                > 

    >        @         

           >    79: 7       >                    

      

                              >        ?A       

                          

+       

       >     

       >  û  @ 0       

 ?              

    (  E  A                         0  @ 0    

                +      

              ? 7   8        A   @  7          

  @                    

          ?    C.A

                            

       

              

                   8         0     

    @ D             @           -    0    =*7        

 

 C º     79:?  

I79:  :> A       

   7  #1   7  8 8                 ?      :> A            

    79:                 ?     

     A     D  #     H 79: ?        A             +  8                                                                            ?      >       A                           û                                           0              E   #1?    A 

                       7       E              ?      A !        >                0     ?  

       A         @                       C.        ?         A @      >      

                            ?                A            !        ?              A      >      pp      pp -  K pp  

 pp LJ L pp

      pp J  M pp     pp CLL#$   ?J AMD ?Cpp   pp L J L pp

       pp J  J ?#AMpp      pp  J  J Mpp      pp      ? J    ?AAMpp  pp AM N1'M  pp   pp O  pp     pp  -  K pp 

 pp L J L  pp

      pp J  M  pp     pp CLL#$   ?J AMD ?Cpp   pp L  J L pp

       pp J  J ?#AMpp      pp  J  J Mpp      pp      ? J    ?AAMpp  pp AM N1'Mpp   pp O 

 C Ù :>                 

 7               A                          >                   D  '                           7           7   @                 J 

   ?                  A               J    #$               D                      ? J A                                                                           

  

ì Ô     1.@ ?        *  9 0:         'A        >   @     

                >  ?            >            A) @        D                                            

                     >    >                           



               

            7                   '       ? > A        

        @               

  #4             0   @           

       #/  &      >                       ? @        E  A       @         

      '%          1          > 0        8  0)    '%              >    +0          '%@    

         

   @      

      >    7    

    79:           >    D   @                 

   @  ì ì    !   û >            

                                                    ?   A                                                           8             @                 

    '

 +                   ?C'%     A

     7       >              D         '3                            @            !@                       8                  @        û           

                    û                                                                         7                        '$$                   

              '$$      !   2$g                                          @  û            @     @  ! 

    @                                      ì    2                     ?  >  C#4 #%A         >                 >  D       û                     >                                 7   

                                    +                  >       @                                  @                    > 

                      &                        0 >                                                                                                                 >   @         û          3    

        >                    ?        3'A

  c   



û           > "                                                           

        1. @  '2           '1       

 1 @          3 @                ?             A !      @          !                          ? D  1A !           ?         A  >       

               

                       

 D  

          ? >                3.##$%          2/'4$' A      ! " Â! "

   

 

  

    

               



C ì 9         7         D 2 >                       Ù "     !  7                                                  



C  8>        @                 

 ? @                      

A                             !   

 0  0       ?C1A              ?0   A - 0û  *0                 - 0 û *0           

    ?> C'2  C#3A     

                 !$                           !#        F %& &

 ! " Â! "

 

 Â  #$ #$    

                     - 0û  *0                                                                ?  $$3 $$1A 



C     @                       @            D         

 @ #4#22.#/##%4###'  #$             

@ 3' 1' 3# 1$ 32 1# 3% '1 3. 3/   '2         D %   >       ?               A 7            



C A8> '0  ?   A                                      1#     >                   ì "    !  û                       

                ?                         A   

          "           ?      A         D  /               



 D   

                                                          0û    ? C1A        7     $$2   @                   ?     $2A +    0                 

                 

         $$2 ?     0           

  $$/A !            @                     0                    !                        

  "                          ?      A                          )-   >               7                 

       @  D       @                         >                ?0       )-   >      )  > A  >             @         D    @            @         >           >               ‹      

            

            

     

     

      

     

          



    

                      







                                

  

                      

   



C º -  ? >  A 

        *                 >             >      >   ?         A            >                         @ 

7                   >   

    @     >    @    >           ?    A !         

          > &     >     >   D  #$                                     >                D  ##          7                           

          ! " Â! "

   

   

   

                 



C ºº 9    >   >    

 - 0û *0                 $1.       @   0                   !                   !                             >  0      ?)-   >  0      A                       

                 ?        A     >        

        >                      

                 )-  >                                        !              

<  c   û   2      >                     ?   A   1. @  û                                                             7                          7                   

                   

                  >                 

     

    !    >                                7&                7 û    A 

    >                !                                      

          >                                                                                    >                                 >    8          >            7                           > "                   

 @                                                             !              @             @                       !           &          +                    !            2$g   ?  0>A   ?  A   7                                  D    >                    !                                                       >            C'#                û           >                                  !        h    i                   h      i            ?      A     !          >                7        >           C'#    >   C'#  >     

                         

  >           

 

 >    

          ?>       A  @   "                            @    >  &              7    >                                             @          ?    A     @  7  >                              ?     A !     

                 

                        ?A         

          @          !                          @       :   >  

                         >            >     0  >             @          D               >                                         h       i0                     !

                                                       > "       >                           !  

                                                     

                          

        >                            D             >                

c $ 



         * 9 0 :               D                =D         7¹J     @             : : ( !   - !  

                      

  D          9  *   

                

 



C# 8 ¹  D   @ 0     

       -7 (:'$$' C' +        7  +(+ !     +    :  ' :  +(+ #..% C3 + EME M-  D*           :  -            :   :>  ::(): )+ '%42   '$$3/#0#$3 C1 + û E             3     E ûI#../ C2 9  -M  <   J D  E  û       :      (û :    *          

    ?  : *A  )û (9 '$$. C4 :  8                '$$3     û  0$$'2       '$$. C% = E9  :> :  9 +  + +-'$?/A#.%%2/102.2 C/ = :       E  7  ##?1A '#0'1'$$$ C. =  E M E ( :                         

 #..$#340#2$ C#$ !   D  !  0    H                  '$#$ C## !     û    7        º 0   :  (  û   :     *          

    ?  : *A  )û (9'$$. C#' !  9      7                9 @  0  :       :+ '$#$ 3$$03$3 C#3 !   M      û               º         E     =   '$#$ C#1 !  M E -   !      +GG       :>                  9 + » *)! +E#..1 C#2 E  )M -   8      :   :>  '$$# C#4 ¹  8                7:::         :   J'/7/'$$'%'#0%31 C#% ¹   8     :                  7      :     :  ( E 8 >      0    (  '$$$02- '$$$ C'3  û  +  :>    8         +   7:::        :  '1?1A#../3$'03#' 





C'1    -M  M û +  *       @     ' :     

   ¹   = '//0'.$ C'2  û    +     :>  -º 7::: + 3#?2A 3'01$ C'4    û  (  9       

 7:::    '1?2A'$$%'/03$ C'% û + (  !¼  -  :>      :   7    #...