Assertions
-  Can be used to identify how the program should behave
 
-  Are used to verify:
	
	-  Steps of an operation 
 
	-  Algorithm input and output values
 
	-  Function parameters 
 
	-  Flow of control 
 
	-  Hardware properties
 
	-  Test results
 
	
 
Example (from regular expression engine)
    if (dp != NULL)
        break;
    /* uh-oh... we couldn't find a subexpression-level match */
    assert(g->backrefs);    /* must be back references doing it */
    assert(g->nplus == 0 || m->lastpos != NULL);