Two ways of doing assertions: Compiler switch with no representation in object code. Object code representation allowing assertion checking to be dynamically controlled (enabled via reloading of the code). Three states for each class are: disabled, available (code is loaded, but a dynamic check at each assert skips), and checked.