“…Perhaps the principal division between previous approaches to the enforcement of trace based program properties is between those systems that detect errors at run-time [26,22,31,7,6,1,13], vs. those that detect errors at compile-time [3,11,8,30]. Run-time approaches are more accurate since a compiletime analysis must conservatively approximate what events could occur; the compiletime analysis will also reject some safe programs, due to the need to be conservative.…”