|    | 
     
         
          |   | 
            Auditors 
              An Extensible, Dynamic 
              Code Verification Mechanism   | 
         
        
       
         
      New: Auditors in Joe-E
      
      Old Paper
      
      Old Talk
      
      Abstract
      We introduce auditors, a program annotation and verification 
        scheme similar to type declarations, but more general in some ways: auditors 
        can be dynamically generated and applied at run-time, and can inspect 
        the source code of the annotated object. Auditors allow objects to make 
        mandatory commitments about their behaviour (such as immutability, determinism, 
        or lack of side effects), as contrasted with types, which constrain data 
        but are only discretionary with respect to behaviour. The inspection facility 
        is arbitrarily extensible since auditors can themselves be part of the 
        program. In particular, we describe an implementation of auditors for 
        E, a language platform for capability-secure distributed programming, 
        and apply auditors to make E the first language capable of supporting 
        secure confinement at the object level. 
       | 
      |