Formal Foundations of Dynamic Types for Software Components

22 downloads 9333 Views 437KB Size Report
Apr 7, 2000 - troduction of the concept type to software components extends the .... In this case the use-interface of component A will not fit to the call-.
                                        !"""

                                     !    "   ½

                                                   

            ! 

                                 

"

       #                    $ 

    

%   ! &





'    %  " 





( )     " ! 

*

*

+  , "     -  #

*

         













& . /



" %  

1



" 2   

3



" ./

3



" &%/

4

       

0





" &)



" / 



5



" & 

6

*

! 



    !

"





 

   "                          7! 448

9  

     :                7'!4*87%458              

"  )         ,



;9             

        7? 48                            %         A         

9           

               "                         



    

/   )   !>     #             

C        

       79 458 !      

                     

         



  

"

                                        

#   &      

 

         

                       

  

"        

-           

                 

D  

   

           

                   

           

2            + :  C   D %+(-/ 7+CD8 C  B%+C 7B%+8  ! C   &E7&E-8            #     #      

!     #    

      #      

  )      

"            

          

          

   

"     

     #               

½                      

         



9              

       

 

       /              #       "            

        >          

 /      7( 4487(F448          >               

      

"      

@       #           

   

          

                

              #

9               )  

          D               , #   Æ      )         

&   

           , /                               )             

 "                    

.            

                 

                

F   

             )                         "        

         

'                             

2    

  >    2     :     

                    #

       "                 &                           "                            .                                    "  

      

   

*



          

/         #      

          )    #          !       ,

 $ &                          

   

                                                     F             

#%  $ B #      #  &       ' $ B        

('   $

           

       

         # 

 )   7F 8  7F(448                 



!""# $           %&

+    

                                         %                  ,                )              #    )         

  "          #          "                      /        -   #  

          /   #   

     - 9           



    /     @        

                       - "            !   

         

3

                              %  /                             

"      

                               :    "                  /       - -       /    #      "    

   

    

D                           

'      

   7(F4487F(448   :  

 7( 8

 

    "                

" 

 #           

) $ /           

"    

       E (  C      7E/G8

  $ "          @  

   

             )   

       #

*  $ "   )                

"             

       

   $ 9          

      $ &       )   "     )   !>   #      )     



               

 

!              H   



  

,I



        I      @ ,

 ?        H

  ' $ 

/      *                  )    7F48

.         

.            )   

0

          

7? 487J!458

5

?   #      

       @   #     

&+   ,&          -

             I       Æ                                       Æ ,                            Æ   I                         !   Æ    

&+   ,   .   & -

"    I       Æ !         ,I    #                 $    Æ    I   #         $                 % $      !         Æ    !     

&+   ,        !    ÆK , 







ÆK  ,I Æ  Æ  Æ   

!  I 

 

 

&+   ,  /  -

#    !               !        !             K      ,I    Æ     &               !             ?                I     B    ,

    ÆK   

       

            #   

&+  0 , '1 '     

 I     

# !    

 

 

        I   

"  #         #            %/            ./  &%/ ½

   



              

         

1



   ( 

"            @  "    ,

   $ "          

  

       

    7/D418

9    E/G/

   



.           

                

         $ "   #      )        

    

%/ %/

       #   %/   

       #        @     

   /          )     %  H     H            %/

 

,I

!       

&+   ,   2  !    ( 



      

&+  " , )  2   !  

  (







  

    



  

&+  3 ,)  ) +%-

  I     !   I            !     !   !    #  !    !      !  !             &          



&+  4 ,   '   ,'   5 ' --

# (    (   )    (  ,I       Æ !            )%    ,I            



             $  *       )     !           )           !       !          Æ       Æ              Æ  #           + !  !    

    

4



          !  * 



       Æ     )%   ,          #       *   I    !         *            Æ        ÆK          *                @ 

.     

/

  ,



  

   

"        

 volume_up, volume_down, brightness_up, brightness_down, contrast_up, contrast_down, speed_up, speed_down

C-Aut VideoMail

play

stop

play

pause

brightness_up, brightness_down, contrast_up, contrast_down, speed_up, speed_down, save_to_file

.  , & , %/  





G C  #              )            )  /

"



    

  # 

  

   



   %/ 

   

+        :         

    :         "

! 7F158 !BL7" 1*8 2CL7(E-448   



  

      

 



       %/               

C   ,           

    %/

  +                        

 

/         



        )   +   

    

 

  

 

                         &                    

         

6

    (             #      

9        ,



/           



?            



?             

  

             

          *

?                

               

"          %/    9

 

    

#  '  )  

             

        B                >     

    

 

"  

 

    '  )     B         

    "  

           

              >    

@ 

 ' $

"                 



   

"     



 # ,

 ,I 

  

&             

 

"   

      C                 

9 # 

 

 

" # M



MC                        

,   (  

M

 

NN

 

"   NN                

         





  M

"



  ,I 

                

      



?  M

    

%   >  >     #



        > 



   : 

"       

      /  

        

   

     

  



 N N

     M





       ,







,I  ,I

  M   I    ,I   M   I 

 *

9 #                  

                     

     

    N N  M        M  

,I ,I

/     )

      



I

 3  0

"      

             



?  #       M

,

M

M" 

 6 I 6

 5

"              

6

    I 6

!   #   

 M  M

,I ,I

   M  I  6     M  I I 6 

"       @     # 

 1  4

 

  M   I 6    M    6  

/      B./       

M

 M

 6



   

9          $ *       

"                 

                    

     /           ) >  /       > 

"             

          "         

            

         

"      

"        

            

F      

                 /         

   *           

                          

"                   

             

.                         9     >     >    

     

/          

        #      >   

         



C-Aut Stack push (n++)

[n>=0]

pop (n--) .  , %/       

       >                



     

+ 

 

       H

          

         >  #                                     >   

'   ,-$         M       

Æ    I        Æ    I   Æ    I 

 

K

.                  !!%              !!%

 '6     ,6-$           Æ     I               Æ  N N  I               

 9                               I 

"         ,           

Æ  N N 

  

I

  

       

      Æ     I  

       

.,





      Æ     I                #     Æ     I                            Æ     I           

 

" %C%                     )     

" !!%    

    



a(i++)

a(i++) a(i++) ...

... s

= s = s 1 2 (a)

s

s

1 (b)

2

= s

a(i++) a(i++)

b

... s

s

1

2

s

(c) .  , %            

    !  % 

              



  9  !!%   

9        

   

a(i++)

b(i--) b

a(i++)

...

...

a(i++)

... (b)

(a)

.  *, %         %  C  %     )

      )  

"   >           >     



  #        

                     "    #  

      # 



,I

                

9       

         

*

, 7

. 

                

        .         # 

       "    #   ,   ,   7           ,I             

       #              I     

   

 ,I

"    /  -         

"  

   -   ,                    O                      J      

   

 

      

 !

    



          

    ! !!   I    

       .   



I

"                           #  M

8 7 7

    &

/     

     /  

7 7

&

8

6

I6













 M

       

" "    "

  

"         -



'  /                M     -               

" 

                   #   B./ B

  #

.               

           .       # N N  M  @        #  M  @    "                   '  -      

   

?           

           #  :        

   

            I  !  I  

    # 

" 

#     

"                   

     Æ .         #        '  /               I 6   #       6 "           -   #   ,I        /     )   %C%  !!%

     

3

       -    %C%                       /                        !             B   !!%  Æ        ,I

 

      !!%           



 )  ( 

"                )   

     )                

       

         

.      

./        

   ./   %/ 

       &%/                                  9  

   &%/            &%/       ./      

%/   ./



 

N

    ,

  





 *

  

/     ./              "        ,   



  ./

./





         

          

+           ./



&+  9 ,  '   ,'   5 ' --

              ,I       Æ !              %        ,I    

,I



  

$  $  $           $       

 3

                     $                      ! !  -      

         

0



            



       Æ         ,            *          

.  3       ./      G  C  



F-Aut VideoMail::play [ifavail] VideoPlayer::play SoundPlayer::play

.  3, ./   .          . 

   

 

  

 *'   (  9    #               7/458,               #

 0

. 

     



    

                -               



 

  # 

         

"       ,       

     

        

             # 

"

            #     

9          

 0      $         "                    

  #  0 

   



      



       /              #  # 6   3 F           #

 0      

 ,I      

78

 0

6   #%  &        . /          . /    %/       

9     

     F-Aut f

5

F-Aut f a

b

[ifavail]a

b

(a) .  0, 2        

(b) %#    

   



                  %/ -         



   )         

/    

   @   A   ./     @  

           ./    

 !                @        

!       ./  @    

     

         ./  

%/

"      ,

  %/                ,                                     @            ,        

      ) @      

%/ /     #  5 " ./          :        

9  @          ./  

       %/    #   1   5 ?     @       ./         %/             ./

.  1      ./  

     "     %/     

       H       .         #               

L 

 

1

         

...

C-Aut A

f_exit

f_call

f_ex 1 ... f_ex 2 ... f_ex n ...

.  5, C      %/

F-Aut f

g_exit

g_call

g_ex 1 ... g_ex n

.  1, ./      

    





,I 

4

     

.     

!

  

    

     





 5

         

     9 

   #   ./                

"   

  ./   %/     >      



  

/    )  *  & %  /      %/   ./            

  

?  

       



        

&+   ,#      '   -

,(    ,(  "    ( (        ,(      

,(  ,I       Æ ! 

        

,I



  



         

 1



           Æ             !  !



             $  *       )     !           )    



      !       !          Æ       Æ              Æ 



         

     #'   , %/



+, &%/

./

  



         

6

   

       %/

    Æ  

 

,



   Æ  P



     Æ      P            Æ     Æ     P



  

  



              

Æ    Æ  P





.  4      &%/         

   %/  #     ./   #  3

C-Aut

VideoMail

play

stop

... EC-Aut VideoMail play_start

[ifavail] VideoPlayer::play SoundPlayer::play

play_exit

stop_start

[ifavail] VideoPlayer::stop SoundPlayer::stop

stop_exit

... play_exit

stop_exit

.  4, &%/ 

  

     '   , &%/ +, %/

   

   &%/

    Æ    

   

 

# 

  

Æ     P

Æ       P

           

    



                

 



QI 6



    !                

      P Æ    Æ        P     Æ     

    P Æ          Æ       P     P Æ        Æ     P 



  NNP 

    

  "             #             $



 Æ   Æ     P 



       "          >      #                   

"  

             



  

/              ) 

 

    )    #      ) 

  &%/

9  )   @  >  

*    " 

  

     .         

 Æ           *   !

          *          

"      > 

 

6  : " >   B./                         7/!2108 "           7F468

"        )   

   )                      

   ,    Æ  

I

"       

Æ    I

 

       #

                    

"   #         # 

  



    



,  & B./, &%/ +,  )  > ) & B./, &%/

      

P #    P          

    #

    "          

#

@     P

  

  

 Æ         #      P 







   

P

"       )   

/     

  )    !  >          

    @      "    )       



*        *    "

                  



   

2          

          

)       

      

*

  

*



       

     #  

/            

                           /   



?             M         



  >     M    >   L 

"  

!            

  Æ ,I    I       Æ M  M 

" 

 

              

         #           # L   Æ  ,I    I       Æ  !           #  I       Æ  L  Æ        >    Æ L             >    I       Æ    

            

                             "   ?        

      

"      >      

         

*

#         ,

 Æ I  Æ 

 

.    

 #    

%,

&+   ( 

% ,   % 

 6 I 6    M  

,I

 

    !

  Æ                  K   B      M       %     I Æ      %   L 

  Æ I   Æ "        )     >  

 

&+   ,% '       Æ .      

% ÆK    I % ÆK   



Æ

     

 I

Æ "    Æ I       Æ

I

 

% I % 

 *

  >  /  



 3

¼

"     

     Æ !





I

%

% ÆK    I % ÆK   

       

   

% 



%  # 



   #               #  3

.    0    

Æ   % Æ  

 0

Æ  

% ÆK    I % ÆK   



K "       K     7    8   M  )  + K K K



  I   

)      "                         K K        #            7   8

% Æ  

&

Æ

Æ



% Æ  



 Æ  

Æ  

"         #  )   

 )  

&)       ,   







 )                 

    

3

a ...

... a b(n++)

...

... b(n++)

.  , . )                ) 

  )   

  Æ     7Æ   8        

     .     )    "             #  

%

%  )  @      %

         #      #   

   

   



    , %  !  

 I

%  

"  

 5

%      )             &   "     >     

   

"  )     )   

 Æ '

,

9   ! 

I

 Æ

 Æ     Æ

 I

 Æ 

L 

I

% % 

  Æ 

 1

        Æ

 Æ    Æ

 4

       

   Æ

 I

 Æ 

 6

.  6  

ÆK         M    6    M   I 6

 

Æ      !                 )        Æ 

9     6  K   

Æ

   

  M    6    M   I 6

 



         

0

-     '

,

    Æ 

  Æ

F    

I

  Æ     

 Æ

 I 

 Æ 

"              

   Æ

 



   Æ 





 

 



-    4           

    Æ  I   Æ



 *

.     

ÆK     

 3

-   * /    

% ÆK     

 0

& 

% ÆK    I 

 5

ÆK     

 1

.      

     )   

% %

% ÆK    I       5    

"   )     >     

        M



,I M





 M

IM





  Æ



Æ I Æ

 

I

  Æ 

.  4     1 

   



  M

,I M  

Æ I Æ

I

 4

 Æ

 I

 Æ 

2

        )   

     >  "      >        

    L         

 

 

 I M  ,I M  M  I M  ,I M  Æ I Æ    Æ  I   Æ  B   1    Æ  I   Æ  2       Æ   I   Æ  "         Æ I Æ M

   

5

       .             

    9            

  

            :     



.           

                9             :      

,  > & B./, &%/

  &%/

+,   @             

',

 



 

'   P

     &%/

 



      Æ       

 Æ    '   # 

    

   P 

 Æ    '      

 Æ    'Q I 'Æ         P   '(     Æ    'P  Æ    '    P





     '      P  

 $ 

/                                              

          

              !           Æ       C                                                                    

           /      - 

             %/    

         

1



                         



 







"    

 



 

    &%/ 

             

  %/

   @    

 ) 

+       %/ 

 



  

 

  %/     , 

   %/ 

% &%/

        

     .   

        

./

    &%/  %/  %/  "  

%      &%/ "      &%/  



              

             *    @         &%/  %/

/  

     

 

   

% %/   &%/     

./

    

          #'     %/  

, &%/

+, &%/

     P   )   P ¢



¢

         

       P     Æ   

   Æ  Æ              Æ   

   Æ       P Æ          Æ   P

   









                

                      Æ    I  

Æ     P



"

   





"   

4

 

      

  

Æ

      

     Æ      



      9    

   

  

  



          '       

, &%/

./

+, %/

    

   

   &%/

    Æ    

   

 

  

Æ     P   ./     

# 



Æ       P

           

        !        

 

 Q I 6 

    !                

  

  P Æ    Æ        P     Æ     

    P Æ          Æ       P     P Æ        Æ     P 



  NNP 

    

  "             #             $

. 



 Æ   Æ     P 

 "     

      &%/  

    

   

      ./







   





   

         

6



 * 

/                 

        !                       )                                 #    



  

/                                

"          :     

 ,

6        )

.      

       

1         



&        

       #         +  

                      

 



    

         "         )                  7! 408 +                                     "                       



"

           

       

9         



           





/  

        #  C./      



 C./

 I  

"    )  

  %/!

 6

/       * )  *       

Æ   !           #    

       2./  2./ I  

"    :     





   

  &%/!

 

            

                  ,  !   ! "          C./  2./ ?   

  

   



!

"           %/



%/           

    

       

"      # 

 ,

       %/           , !      #    %/!     %/ #%  ,             %/!       

    

    %/      #  

   



"   



      . 

  

  &  

 

         

 !

"         %/   #

  

          ' !   %/!  !

, %/

+, %/ 

 

 





 





  P

 P

      .

    . P

      & 

    &  P

      

         Æ 

Æ!   Æ  P



   !      Æ!  

Æ!   Æ!  P





#     #         "   %/   

F         

    #  

         

 &    I ½



&     #

            

!

L 



         



C-Aut

MailUserAgent reread_inbox show_inbox

.  , "

select_mail

#  

C-Aut MailUserAgent + (VideoMail x VideoPlayer) reread_inbox show_inbox

select_mail

.  , "  

       

        I



 

brightness_up, brightness_down, speed_up, speed_down, contrast_up, contrast_down

play

pause

stop

play

# 

9 # .  

  ,I

¢

 

L               7%9138  % 





     % 

   

      

 



@     

     



 

           

          @   



    ) 

9           

        B./       ,

%/   %/   &%/   &%/ 

   

*

.             Æ         

  ,

   I

  

?

 *

" )                              /                          

"          

                @     

   



       

# 4       

 

                         &%/

.    (     "          B./    

 B./              

          B./      B./         ,   B./

      I     

+,   B./

    P     P

        

       P     Æ  

   Æ   Æ         Æ    (       Æ      (     (    P





              

                      Æ   II  

Æ   P





P

"                           

  )   

!             

      

 

!          

              #

                                   /        

         #         "



 

        

"                

    

*

  

  > 

        

         

*



   

 

          *



  

         "                ' 

              @   @      )   "  )             )             

           

 

 ,        * ,          ,   % @          *                         

 @       

    

   * ,   ,      ,     



?      )  

)     

 3

   

2

       * ,   

 ,         ,      "              * @       @       ,   I   /   )                

   * ,     ,     * "      , 

 

,



 

 

    ,      , "     * @    

    @        

      >  *     ,   I   , F      @                 * @          ,   * ,        ,     

 



/     )  3       

*,



 ,     ,    

          

       

* ,    @      

  

,     * ,  

 0

            @     

"            

                  

,   

     

!

   

   

3

 #%  "            

  3

,      * , N       , N   N 

 5

        ,     * , N  ,   1      , N   N 

/  @         

    * ,    ,           * ,          , N  @          * , N    N   N   "          

 

/ @    

     3       5   1          

 



,



     

*

,







 

" 

               

 

        

+     

 5   1              

   

 ,        * , 

         

 

N

"  

  

-                 

* ,    ,       * , N          *     * , N  ,   4      , N   N  /       ,

,      * , N       , N   N 

 6

!        #         ,

,      * , N 

 )    

 

    )         

  "     #       

 ,

 

        

,I

N

 

"            

          





       

         

0





              

      





 

          

"           !            ,

  

      

/          3         

I

 

  



    "                                 

     BL



C            ,

"          ,                  

       

%         

         

'  ! 7F158

          #              



! >   , !                9          )    >
  / % 9

 ,-( %   

+ !   !       / 9   (   C/ 

444 7&E-8

! C   % 

" &  E -   

,RR:  R  R : R 7F158

7F 8

B F  ! ,          

    '  B F > 

)  

1,$5* 415

S & ! /   S  A   2  > 

S  !       '   

'B   

  7F468

/ 

F

      

(  ?E 65*31 2!/ 446 - 9 H 

1

'  F 2  ! 

'  F ! !   & ,

   7F48

4

  .       '  

D  E F>

'  F &  %@ ?E 44 7F(448

B F >   ( (   B %  - %   /   0       )  1 #0)1$ 2 3

 4  /   !    5$6 444     "   !

7E/G8

! C   %  " E/G/   ,RR:  R

7? 48

+  ? >

(        : 

++')( 56! - )70'(8 8   9:#;  

'  %

%

!BL

"

"

   )  >  +  +

/%C '   / 9   (   C/ 441 .  ! #   B   L

( > 66> 6* D   41*

  

*6

79 458

9 9 

       :  

 9 9  E -   %   !>   

'    )  7  / 

+ '  #/+'5?$   63$

   

"  %  

%  !    !    445 7J!458

B J   ( ! '  ! #   %  /  

- %    '  (   )

4,4$ 445

Suggest Documents