20 lines
990 B
Plaintext
20 lines
990 B
Plaintext
|
.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].
|