ECOOP;2001 Workshop 4 3 ECOOP Workshop on Formal Techniques for Java Programs

farflungconvyancerΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 16 μέρες)

75 εμφανίσεις

ECOOP;2001 Workshop 4

3
rd
ECOOP Workshop on
Formal Techniques for Java Programs

Informal proceedings,
Budapest, 18
th
June 2001


Program Committee:

Sophia Drossopoulou (Imperial College, Great Britain)
Susan Eisenbach (Imperial College, Great Britain)
Gary T. Leavens, Iowa State University, USA
Peter Müller, Fernuniversität Hagen, Germany
Arnd Poetzsch-Heffter, Fernuniversität Hagen, Germany
Gilad Bracha (Sun Microsystems, USA)
Doug Lea (State University of New York at Oswego, USA)
Rustan Leino (Compaq Computer Corporation, USA)
Erik Poll (University of Nijmegen, The Netherlands)


Organizers:

Susan Eisenbach (Imperial College, Great Britain)
Gary Leavens (Iowa State University, USA)
Peter Müller (FernUniversität Hagen, Germany)
Arnd Poetzsch-Heffter (FernUniversität Hagen, Germany)
Erik Poll (University of Nijmegen, The Netherlands)
3
rd
ECOOP Workshop on
Formal Techniques for Java Programs
Budapest, 18
th
June 2001
Programme

9:00 – 10:00 Opening Session, and Invited Talk
Gilad Bracha Adventures in Computational Theology:
Selected Experiences with the Java(tm) Programming Language
10:15 – 11:15
Alessandro Coglio
Improving the Official Specification of Java Bytecode Verification
Kees Huizing and Ruurd Kuiper:
Reinforcing Fragile Base Classes
11:25 –12:25
Davide Ancona, Giovanni Lagorio, and Elena Zucca
Java Separate Type Checking is not Safe
Mirko Viroli
From FGJ to Java according to LM translator
Mats Skoglund and Tobias Wrigstad
A mode system for read-only references in Java
12:25 – 13:45 Lunch
13:45 – 15:45
Pierre Boury and Nabil Elkhadi
Static Analysis of Java Cryptographic Applets
Peter Mueller, Arnd Poetzsch-Heffter, Gary T. Leavens :
Modular Specification of Frame Properties in JML
Gilles Barthe, Dilian Gurov, and Marieke Huisman
Compositional specification and verification of control flow based
security properties of multi-application programs
J Strother Moore, Robert Krug, Hanbing Liu, and George Porter
Formal Models of Java at the JVM Level: A Survey from the ACL2 Perspective
16:00 – 17:30
Peter Mueller and Arnd Poetzsch-Heffter
A Type System for Checking Applet Isolation in Java Card
John Boyland
The Interdependence of Effects and Uniqueness
Ana Cavalcanti and David Naumann
Class Refinement for Sequential Java
Joachim van den Berg, Cees-Bart Breunesse, Bart Jacobs, Erik Poll
On the Role of Invariants in Reasoning about Object-Oriented Languages
17:45 – 18:30 Short presentations and closing session
Claus Pahl:
Formalising Dynamic Composition and Evolution in Java Systems
M. Carbone, M. Coccia, G. Ferrari and S. Maffeis
Process Algebra-Guided Design of Java Mobile Network Applications
Peep Kungas, Vahur Kotkas, and Enn Tyugu
Introducing Meta-Interfaces into Java
Preface

This is the proceedings of the second workshop on Formal Techniques for Java
Programs, June 12, 2000, held in Sophia Antipolis, France. The workshop is affiliated
with the 15th European Conference on Object-Oriented Programming, ECOOP 2001.
Papers in the proceedings are included here based on the reviews of the workshop
organizers.

The papers are also available from:

http://www.informatik.fernuni-hagen.de/import/pi5/workshops/ecoop2001_papers.html
As in the two previous years, we also plan to organize a special issue of an appropriate
journal with long versions of selected papers from the workshop and additional invited
papers on the topic.


The objective of the workshop is to bring together people developing formal techniques
and tool support for Java. Formal techniques can help to analyze programs, to precisely
describe program behavior, and to verify program properties. Applying such techniques
to object-oriented technology is especially interesting because:

1.The OO-paradigm forms the basis for the software component industry with
their need for certification techniques.
2.It is widely used for distributed and network programming.
3.The potential for reuse in OO-programming carries over to reusing
specifications and proofs.


Such formal techniques are sound, only if based on a formalization of the language itself.

Java is a good platform to bridge the gap between formal techniques and practical
program development. It plays an important role in these areas and is on the way to
becoming a de facto standard because of its reasonably clear semantics and its
standardized library.


Sophia Drossopoulou, Susan Eisenbach , Gary T. Leavens , Peter Müller
Arnd Poetzsch-Heffter, Gilad Bracha, Doug Lea, Rustan Leino, Erik Poll
Invited Talk

Adventures in Computational Theology:
Selected Experiences with the Java(tm) Programming Language

Gilad Bracha (SUN Microsystems)
 
Æ  
 
   
   

￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿￿￿
￿￿￿￿￿￿￿ ￿￿￿￿￿￿￿￿￿
￿￿￿￿ ￿￿￿￿￿￿￿￿ ￿￿ ￿￿ ￿￿￿ ￿ ￿￿￿ ￿￿￿￿￿ ￿￿ ￿￿￿￿￿
￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿ ￿￿
￿ ￿ ￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿ ￿￿
￿￿￿￿￿￿￿￿
   
 

  
 
          
  

    
 
   
 
          
 

  



 Æ
  
 
      
 
    

 
  
    
         
    !
  
 
       
         
   

 
       
     

        
￿ ￿￿ ￿￿￿ ￿￿￿￿￿￿￿
   
 

  
 
          
   

    
 
￿
    
   
    
         

    
     
      
    !



  
  "       
 
#
      
    
 
          $% &&'  
  
 
    
 

    
      
  
  

    (
    
 
  
   
  
   "
)
     

  #  #     
     
 Æ
  
 
    $* +&&' 
 
 

 
    
 

 


  , #
   -
 
  
 


   
    

. 
   
#

 

  
  
    
  
 

          
 
 
      
   
       
  
 

    )   / 
. 
   
#


 Æ

 
 
      
 

0
 1        
   
 
0
 2 3 
#  " #
 
0
 4 5   
  
Æ
   
 

     607  

       
 

        
#
   # 60287 0"  #  0

 
￿
￿￿￿ ￿￿￿￿￿ ￿￿￿ ￿￿￿￿￿￿￿￿ ￿￿￿￿ ￿ ￿￿￿￿￿￿￿￿￿ ￿ ￿ ￿￿￿￿￿ ￿￿ ￿ ￿￿￿￿￿￿￿￿￿￿￿ ￿￿￿ ￿￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿￿ ￿￿￿￿￿￿￿￿
￿￿ ￿ ￿￿￿ ￿￿ ￿￿￿￿￿￿￿￿ ￿￿￿￿￿￿￿￿ ￿ ￿￿￿ ￿￿ ￿￿￿￿￿￿ ￿￿ ￿￿￿￿ ￿ ￿￿￿￿￿￿￿￿￿
8
#   
    
"  
 
 
        
#
    

        
￿ ￿￿￿￿￿￿￿￿
04 
        
    3   
 

       "

#    .   
  
    3   
 

 
 

04&8   

#    9  8  1 
  #   "
#
        )
#   .     
  :
     
   .  
 
 
#  8  1


   2:   


    
            
   



    9  4  
    "       


    
             ;  #

     "      )
   4
  
  #
      
 
 
 
   
 

   2 0

       
 
    


  
 
#  
   ;      
 

  
 

#            ! 
Æ

   
 

 
 
04<  04& 04<     

    .     

       
      



 ￿￿￿￿￿￿  ￿￿￿￿￿￿￿￿ ￿￿  
 04& )

.
 #


       
   "  

     /
￿￿￿ ￿￿￿￿￿￿ ￿￿￿￿￿￿￿￿￿ ￿￿
04<8     
  
 
    .     

 
    .       
 
  
      
   = 
 
 :           
   


04<8   .
  .
 
#   
 
   .
  #              ￿￿￿

 
          
  
      
 


   

#
 
  )  

   ￿￿￿:    0

￿￿￿                
    




              0  
" 
   
#
 
04<8 
        "     
 
5   
     .
 
    
#      
 
#     
   
     
 
   ￿￿￿
 


0>     )

   
     
   




   
     
  "
     

     

   
 
          
 

    .
  " 

  
   5  )  
￿￿￿￿￿￿￿￿
 
 .
          
 
 .
 

#
    
  "
  
 
  ￿￿￿￿￿￿￿￿
0>    

 

04<8       
 
 
1
￿￿￿ ￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿￿￿￿￿￿ ￿￿
0 
  
  
  
#           
 
 ?
        
   
04<1  
 
 

#  # 
   
    
         
   
  
  
 ) 0    
  
 
 .  0 
    
  
   
  @ "       

 
￿￿￿￿￿ ￿ ￿￿￿￿￿￿￿￿￿￿
   6 
7  6  7 
    
#
 
04<8
 04<1  
    
  
#  
 
# "
 
 
        " ￿￿￿￿￿￿ ￿￿ ￿￿ 
 )
#  A


  
  )
#   0 
# !
  6 
7     
"
   
    
 
-
      
       
  .
   
     
    
   #    "  
    
 


 (     
  
      
    
    
  

      
 
#  
     
 
 

 



0
 111
￿￿￿￿￿ ￿￿￿￿￿￿￿￿￿￿￿￿￿ ￿
        
 )           


 
   ) 5  )   ￿￿￿￿￿￿￿￿
 )    
    "   
    !   
      
    
   
 
 :   
(     

#
"
     
  " 
 
  
 
=

  "  
 #  
      
    )
 
    
#

   3 
      
      
 "     )
   
     
       
 
     
     
 
 
   
 
0
 118
     
 #
 
  )        
  


04 0
       
    
  
  
            
 

   
   


 

  

0
 211
￿￿￿￿￿ ￿￿￿￿￿￿￿￿￿￿
   
   
       
 
     ) 

 
          
     "     
 

  6  
7     
     
 
  
 

#
 
0> 5  )  ￿￿￿￿￿￿￿￿ .
         "  

   
       
   
 
 :   
         .
   ￿￿￿￿￿￿￿￿
   )

  
      

 
 (   

        

    
       
=   

 
     
 
        
       "
  
 
   "  B       =#

2


 
  .      
C   
 
 .
 
     
     
     "      
   
=     
    #        
   


     
 
 
 
 #
 
0>
      
      
 
 )   
     "     

= )

0>8

   "     
 
       
)  
    0    
   
        
  
# 
￿￿￿￿￿ ￿￿￿ ￿ ￿￿ ￿￿￿￿￿￿￿￿￿￿￿
 
 
           

        (   
  

 
     
           
)

 
 

#
   
04<1
= ) 
   
  
#   



/ !      

     "    
   "    
  "   
     



/ !      
   

   
  )
   
? )     
     
C  
  
     
 ;
 
  
# ￿￿￿           

# ￿￿￿;               ;
+   ) 
   
 .

# 

 
   
)  #
D   )
        "        
/

  )
  
 
 
=  ￿￿￿￿ ) 
    
    
    04& 


 

0
 12
￿￿￿￿￿ ￿￿￿ ￿￿￿￿￿￿￿￿￿￿
          
     
           
  



/ !     ; !    



/
                    

    !  
  
#



/A
  
   "
#
 





/
￿￿￿￿￿ ￿ ￿￿￿￿￿￿￿ ￿￿￿ ￿￿ ￿￿￿￿￿
=     
      ￿￿￿￿￿￿￿￿￿￿￿￿￿
 
     

 



/ 
    
        

           3"
#
      #      
      .
 
#       = #   

  
#   
  ￿￿￿ 

0
 18
    #
  
           "   
    
 
 

=     
 .
      
 
    ￿￿￿￿￿￿￿
 ￿￿￿￿￿￿￿        :     

 
  "   

      

￿
 0 
       
  
  #

￿
￿￿ ￿￿￿￿￿￿￿ ￿ ￿￿ ￿ ￿￿￿￿￿￿￿￿ ￿￿ ￿￿￿￿￿￿￿￿ ￿￿ ￿ ￿￿￿ ￿ ￿￿￿￿ ￿￿￿ ￿￿ ￿￿￿￿￿ ￿￿￿￿ ￿ ￿￿￿ ￿ ￿￿ ￿￿￿ ￿ ￿ ￿￿￿￿ ￿￿
￿￿￿ ￿￿￿￿ ￿ ￿ ￿￿ ￿ ￿￿￿￿ ￿￿￿ ￿￿￿￿￿￿￿￿￿￿￿ ￿￿ ￿￿￿￿￿￿￿￿￿ ￿￿ ￿ ￿￿ ￿￿￿ ￿￿￿￿ ￿￿ ￿￿￿￿￿￿￿ ￿ ￿ ￿￿￿ ￿￿￿￿ ￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿￿ ￿ ￿￿ ￿￿￿ ￿￿￿￿￿ ￿￿￿￿￿￿ ￿￿￿￿ ￿￿￿ ￿ ￿￿￿￿￿￿￿￿￿￿￿ ￿ ￿￿￿ ￿ ￿ ￿￿￿￿￿￿￿￿ ￿￿￿￿ ￿￿ ￿￿￿￿￿￿￿￿￿￿￿ ￿ ￿￿ ￿ ￿￿
4
04<8
=      

   )
     D     

 
 .  

   
   "    
     

  
    
 
   .           
        )
   
#  
 


￿
 0  

 

04<8                  
 

#     
 
 

     

 


 
 
  5       .
    )
  
  D              
  
  #
04<8
￿￿￿￿￿ ￿￿￿￿￿￿￿￿￿￿￿￿ ￿
=   "
        
 

04<1   
6 # 7         
        


 
   )?   
  .
   
#   

)
 C  )    
 
  
# ￿￿￿        

# ￿￿￿ 
( # 
 
  
   (   
  
    
 
# 
    
  
 
     
 
    
  
￿

￿￿￿ ￿ ￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿￿￿￿￿￿
04& "  #
      
 
       04&1
 
 )
     "