Skip to main content

Checking Concurrent Contracts with Aspects

Eric Kerfoot ( SEP )
The applicability of aspects as a means of implementing runtime contract  
checking has been demonstrated in prior work, where contracts are  
identified as cross-cutting concerns. Checking contracts at runtime  
encounters a set of challenges within concurrent environments, such as the  
risk that evaluation will introduce deadlock in code which is otherwise  
deadlock-free. This talk will outline a simple methodology for generating  
runtime contract checking aspects targeted at concurrent programs. The  
novel features of this approach allow contracts to depend on active  
objects without race conditions or deadlock, and addresses issues relating  
to timing and blame assignment.  The CoJava language is discussed whose  
tool-supported aspect generation methodology allows the correct checking  
of contracts predicated on active objects.

 

 

Share this: