The Compiler as a Code-Reading Tool
-  Change the name of a definition and read the errors 
 
-  Use intermediate files (preprocessing, symbolic code) 
 
-  Read symbolic code to
	
	- To understand how an implementation-defined operation  is actually performed
 
	- To see how compiler optimizations affect the resulting code
 
	- To convince yourself that the compiler correctly translates a piece of code, or (rarely) to find a compiler bug
 
	- To verify that hardware-specific code written in C actually performs the operations you expect
 
	- To learn how a particular construct can be written in symbolic code
 
	
 
-  Examine the object code using nm (Unix) or dumpbin (Windows)