CHECKING OF OPERAND TYPES IN ALGOL COMPILERS (1965)


BIT 5: 151-163, 1965.


Commentary 1990

The technique of pseudo-evaluation described in this section has later been taken up by other workers, such as P. and R. Cousot [pp. 106-130 in Programmation, Proc. of the 2nd International Symposium on Programming, Paris, Dunod, 1976], but usually under other names, such as abstract evaluation.

Abstract

The paper describes the method used in the GIER ALGOL compiler for checking the source program for the compatibility of the kinds and types of identifiers and constants as given in declarations with the use of these entities as operands in the statements and expressions of the program. The basic method is a pseudo-evaluation of the expressions of the program. This proceeds like a run-time evaluation, but works with descriptions of the types and kinds of the operands instead of with values. Several examples of the use of this method are given. A general way of achieving suppression of redundant error messages while still retaining the power to continue the checking process when an error has been detected is also described. Further, a classification of the operands of ALGOL 60 for use in the process is given. The paper ends with a sample error report produced by the GIER ALGOL compiler, illustrating the power of the method.