Checking Concurrent Contracts with Aspects
Eric Kerfoot ( SEP )
- 14:00 13th November 2009 ( week 5, Michaelmas Term 2009 )479
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.
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.