19 lines
		
	
	
	
		
			990 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
	
		
			990 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| .sp 2
 | |
| .NH
 | |
| Testing the compiler
 | |
| .nh
 | |
| .sp
 | |
| .LP
 | |
| Although it is practically impossible to prove the correctness of a compiler,
 | |
| a systematic method of testing the compiler is used to increase the confidence
 | |
| that it will work satisfactorily in practice. The first step was to see if
 | |
| the lexical analysis was performed correctly. For this purpose, the routine
 | |
| LexScan() was used (see also the \-l option). Next we tested the parser
 | |
| generated by LLgen, to see whether correct Pascal programs were accepted and
 | |
| garbage was dealed with gracefully. The biggest test involved was the
 | |
| validation of the semantic analysis. Simultaneously we tested the code
 | |
| generation. First some small Pascal test programs were translated and
 | |
| executed. When these programs work correctly, the Pascal validation suite
 | |
| and a large set of Pascal test programs were compiled to see whether they
 | |
| behaved in the manner the standard specifies. For more details about the
 | |
| Pascal validation suite, the reader is referred to [PCV].
 |